- 支持 iOS 上的后台任务
- 保留的 iOS InfoAdditions 设置
- 支持不同的 iOS 设备型号
- 高分辨率显示器
- iOS 自定义 URI 方案
- iOS 兼容性筛选
- 退出而不是暂停
仅应用于 iOS 设备的设置会被放置到应用程序描述符的 <iPhone> 元素中。iPhone 元素可以将 InfoAdditions 元素、requestedDisplayResolution 元素和 Entitlements 元素作为子级。 利用 InfoAdditions 元素,您可以指定要添加到应用程序的 Info.plist 设置文件的键值对。例如,下面这些值设置应用程序的状态栏样式,并声明应用程序不要求永久的 Wi-Fi 访问。
- <InfoAdditions>
- <![CDATA[
- <key>UIStatusBarStyle</key>
- <string>UIStatusBarStyleBlackOpaque</string>
- <key>UIRequiresPersistentWiFi</key>
- <string>NO</string>
- ]]>
- </InfoAdditions>
复制代码InfoAdditions 设置括在 CDATA 标记中。 利用 Entitlements 元素,您可以指定要添加到应用程序的 Entitlements.plist 设置文件的键值对。Entitlements.plist 设置使应用程序能够访问某些 iOS 功能,例如推送通知。 有关 Info.plist 和 Entitlements.plist 设置的更多详细信息,请参阅 Apple 开发人员文档。
支持 iOS 上的后台任务Adobe AIR 3.3 和更高版本通过启用某些后台行为在 iOS 上支持多任务处理: 后台音频若要启用后台音频播放和录制,请在 InfoAdditions 元素中包括以下键值对: - <InfoAdditions>
- <![CDATA[
- <key>UIBackgroundModes</key>
- <array>
- <string>audio</string>
- </array>
- ]]>
- </InfoAdditions>
复制代码 后台位置更新若要启用后台位置更新,请在 InfoAdditions 元素中包括以下键值对: - <InfoAdditions>
- <![CDATA[
- <key>UIBackgroundModes</key>
- <array>
- <string>location</string>
- </array>
- ]]>
- </InfoAdditions>
复制代码 注: 仅在必要时使用此功能,因为位置 API 会大量消耗电池电量。
后台网络为了在后台执行简短任务,您的应用程序会将 NativeApplication.nativeApplication.executeInBackground 属性设置为 true。例如,您的应用程序可能会启动文件上载操作,此后用户将另一个应用程序移动到前台。当应用程序收到上载完成事件时,它可以将 NativeApplication.nativeApplication.executeInBackground 设置为 false。将 NativeApplication.nativeApplication.executeInBackground 属性设置为 true 不能保证应用程序将无限期运行,因为 iOS 会对后台任务施加时间限制。当 iOS 停止后台处理时,AIR 将调度NativeApplication.suspend 事件。
选择禁止后台执行您的应用程序可以通过在 InfoAdditions 元素中包括以下键值对,明确选择禁止后台执行: - <InfoAdditions>
- <![CDATA[
- <key>UIApplicationExitsOnSuspend</key>
- <true/>
- ]]>
- </InfoAdditions>
-
复制代码 保留的 iOS InfoAdditions 设置AIR 会在生成的 Info.plist 文件中设置多个条目,以确保应用程序和运行时功能正确运行。您不能定义以下设置:CFBundleDisplayName CFBundleExecutableCFBundleIconFilesCFBundleIdentifierCFBundleInfoDictionaryVersionCFBundlePackageTypeCFBundleResourceSpecificationCFBundleShortVersionStringCFBundleSupportedPlatformsCFBundleVersionCTAutoOrients | CTInitialWindowTitle CTInitialWindowVisibleCTIosSdkVersionCTMaxSWFMajorVersionDTPlatformNameDTSDKNameMinimumOSVersion(在 AIR 3.3 和更高版本中有效)NSMainNibFileUIInterfaceOrientationUIStatusBarHiddenUISupportedInterfaceOrientations |
支持不同的 iOS 设备型号为了支持 iPad,请为 InfoAdditions 元素中的 UIDeviceFamily 添加正确的键值设置。UIDeviceFamily 设置是一个字符串数组。每个字符串都定义受支持的设备。<string>1</string> 设置定义对 iPhone 和 iPod Touch 的支持。<string>2</string> 设置定义对 iPad 的支持。如果仅指定其中一个字符串,则仅支持该设备系列。例如,下面的设置限制对 iPad 的支持:- <key>UIDeviceFamily</key>
- <array>
- <string>2</string>
- </array>>
复制代码 下面的设置支持两个设备系列(iPhone/iPod Touch 和 iPad):- <key>UIDeviceFamily</key>
- <array>
- <string>1</string>
- <string>2</string>
- </array>
复制代码 高分辨率显示器利用 requestedDisplayResolution 元素,可以指定在具有高分辨率屏幕的 iOS 设备上,应用程序是应该使用 standard 分辨率模式还是应该使用 high 分辨率模式。<requestedDisplayResolution>high</requestedDisplayResolution>在高分辨率模式中,您可以在高分辨率显示屏上逐个处理每个像素。在标准模式中,设备屏幕将以标准分辨率显示应用程序。在该模式中绘制单个像素会在高分辨率屏幕上设置四个像素的颜色。默认设置为 standard。请注意,requestedDisplayResolution 元素是 iPhone 元素(而不是 InfoAdditions 元素)的子元素。
iOS 自定义 URI 方案您可以注册自定义 URI 方案,以便允许您的应用程序由网页中的链接或设备上的其他本机应用程序进行调用。若要注册 URI 方案,请将 CFBundleURLTypes 键添加到 InfoAdditions 元素中。下面的示例注册了一个名为 com.example.app 的 URI 方案,从而允许应用程序由 example://foo 形式的 URL 进行调用。- <key>CFBundleURLTypes</key>
- <array>
- <dict>
- <key>CFBundleURLSchemes</key>
- <array>
- <string>example</string>
- </array>
- <key>CFBundleURLName</key>
- <string>com.example.app</string>
- </dict>
- </array>
复制代码 通过自定义 URI 调用应用程序时,NativeApplication 对象会调度一个 invoke 事件。此链接的 URL(包括查询参数)放在 InvokeEvent 对象的 arguments 数组中。您可以使用任意多个自定义 URI 方案。注: StageWebView 实例中的链接无法打开使用自定义 URI 方案的 URL。
注: 如果另一个应用程序已注册某个方案,则您的应用程序不能将其替换成为该 URI 方案注册的应用程序。
iOS 兼容性筛选如果您的应用程序只能在具有特定硬件或软件功能的设备上使用,则请将条目添加到 InfoAdditions 元素的 UIRequiredDeviceCapabilities 数组中。例如,以下条目表示应用程序需要静态摄像头和麦克风:- <key>UIRequiredDeviceCapabilities</key>
- <array>
- <string>microphone</string>
- <string>still-camera</string>
- </array>
复制代码 如果设备缺少相应的功能,则无法安装该应用程序。与 AIR 应用程序相关的功能设置包括:telephony wifismsstill-cameraauto-focus-camerafront-facing-camera | camera-flash video-cameraaccelerometerlocation-servicesgpsmicrophone |
AIR 2.6 以上的版本自动将 armv7 和 opengles-2 添加到必需功能的列表中。注: 您无需为了让应用程序使用这些功能而将其添加到应用程序描述符中。仅需使用 UIRequiredDeviceCapabilities 设置即可阻止用户在无法正常使用的设备上安装应用程序。
退出而不是暂停如果用户离开 AIR 应用程序,该应用程序会进入后台并暂停。如果要让应用程序彻底退出而不是暂停,请将 UIApplicationExitsOnSuspend 属性设置为 YES:- <key>UIApplicationExitsOnSuspend</key>
- <true/>
复制代码 本文来自:http://www.badyoo.com/205.html
|