【问题标题】:How to determine the IOS version from within an Flex mobile app (AIR)如何从 Flex 移动应用程序 (AIR) 中确定 IOS 版本
【发布时间】:2014-04-04 16:14:26
【问题描述】:

我想确定我的 Flex 移动应用程序是否在装有 IOS 7 的 IOS 设备上运行。

我需要找出来,因为如果在 IOS 7 上运行,我想降低应用程序的操作栏,以便为指示灯(电池、wifi 等)提供空间。

根据文档,Flex Capabilities 类没有为我提供 IOS 版本号。

我能想到的唯一选择是构建一个 Native 扩展并使用 IOS 函数查询版本。但我并不真正期待构建该扩展。更不用说因为显然你需要一台带有 XCode 的 Mac 来构建 IOS 部分,而我没有 Mac。安装了 OSX 的 VM 可能是我最后的选择。

也许你知道另一种选择?

【问题讨论】:

  • 您有最新版本的 Flex 和 Adob​​e AIR 吗?他们应该为您正确定位应用程序。
  • 不,我使用的是 Flex 4.6,不知道/发现此问题已修复,谢谢!

标签: ios apache-flex air


【解决方案1】:

Flex 4.12 实际上引入了一种通过 CSS 解决此问题的方法(4.12 还引入了操作系统和操作系统版本检查,这很棒):

@media (application-dpi: 160) AND (os-platform:"IOS") AND (min-os-version: 7)
{
    Application {
         osStatusBarHeight: 20;
    }
}

但是要回答你的问题,这个函数就可以了:

public static function get iOSVersion():uint {
    var iosVersion:String = Capabilities.os.match( /([0-9]\.?){2,3}/ )[0];
    return Number( iosVersion.substr( 0, iosVersion.indexOf( "." ) ) );
}

我从我的个人 AS3 实用程序库中提取了它。当然,这将无法获取 Android 版本号,我不确定它是否适用于 Mac 或 Windows。它将返回仅主要版本号(次要版本通常无关紧要)。如果你想改变它,只需在函数中返回 iosVersion 而不是第二行。

【讨论】:

  • 谢谢!现在我面临迁移到 Apache Flex 的任务。
  • 啊,这在 Flex 4.6 中也可以使用,(还)不需要迁移。
  • 顶部是在 Flex 4.12 中实现的(os-platformmin-os-versionosStatusBarHeight 都是),所以你必须升级才能使用它(升级应该很轻松,老实说)。从我记事起,第二部分就一直在 AIR 中。您只是在解析操作系统字符串,它在 iOS 上包含版本号。根本不需要 Flex。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-06
相关资源
最近更新 更多