【问题标题】:Titanium Ti.Android Undefined in iosTitanium Ti.Android 在 ios 中未定义
【发布时间】:2014-06-23 13:11:16
【问题描述】:

我是 Titanium Developer 的新手。我分配了一个 Titanium 项目,用于对最新的 ios 外观和感觉进行 UI 更改。当我运行 App 时,我总是会抛出 Ti.Android 未定义等异常。

之前的 SDK 版本是 3.0.2,但我现在配置的是最新版本 3.2.3GA

当前在 Android 中运行没有任何错误的应用仅在 Ios 中将错误显示为未定义的 Ti.Android。

我的面团,无论 Ti.Android 是仅对 Android 平台严格还是对 ios 和 android 都是严格的,否则它在最新版本的 ios 中已被弃用。

请帮忙。

【问题讨论】:

  • 如何在 iOS 中找到 android 操作系统。写成if(Titanium.Platform.name == 'android'){Ti.Android.......}这样的条件
  • 但是相同的源代码是为 ios 构建的,可能在旧版本 3.0.2 中。它也可以在应用商店中找到。我的问题是 Titanium.Android 是否在最新版本中被贬低。

标签: ios titanium titanium-mobile


【解决方案1】:

正如文档中提到的,Ti.Android 仅适用于 Android(Ti > 1.5,请参见右侧的徽标)http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android 但是,如果您尝试仅访问 Ti.Android 它应该可以工作并返回 undefined因为Ti 没有Android 属性。您不应该看到任何错误...,但您可能正在尝试访问其他一些属性,例如 Ti.Android.XXX,这显然无法正常工作。

【讨论】:

    【解决方案2】:

    在使用任何特定于平台的模块/功能之前,您应该先检查平台。你可以在你的 commonjs 上添加一个函数来检查它。

    var osname = Ti.Platform.osname;    
    
    function isAndroid() {
        return osname === 'android';
    }
    
    function isIOS() {
        return osname === 'iphone' || osname === 'ipad';
    }
    
    function isMobileWeb() {
        return osname === "mobileweb";
    }
    

    在您的控制器上,您可以执行以下操作:

    var fn = require('commonjs');
    
    if (fn.isAndroid()) {
        //the things you do for android only
    } else if (fn.isIOS() {
    
    } else if (fn.isMobileWeb()) {
    
    }
    

    【讨论】:

      猜你喜欢
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-30
      • 2013-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多