- 支援 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 CFBundleExecutable CFBundleIconFiles CFBundleIdentifier CFBundleInfoDictionaryVersion CFBundlePackageType CFBundleResourceSpecification CFBundleShortVersionString CFBundleSupportedPlatforms CFBundleVersion CTAutoOrients |
CTInitialWindowTitle CTInitialWindowVisible CTIosSdkVersion CTMaxSWFMajorVersion DTPlatformName DTSDKName MinimumOSVersion(在 AIR 3.3 和更高版本中有效) NSMainNibFile UIInterfaceOrientation UIStatusBarHidden UISupportedInterfaceOrientations |
支援不同的 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 wifi sms still-camera auto-focus-camera front-facing-camera |
camera-flash video-camera accelerometer location-services gps microphone |
AIR 2.6 以上的版本自動將 armv7 和 opengles-2 添加到必需功能的列表中。
註: 您無需為了讓應用程式使用這些功能而將其添加到應用程式描述項中。僅需使用 UIRequiredDeviceCapabilities 設定即可阻止使用者在無法正常使用的裝置上安裝應用程式。
退出而不是暫停
如果使用者離開 AIR 應用程式,該應用程式會進入後台並暫停。如果要讓應用程式徹底退出而不是暫停,請將 UIApplicationExitsOnSuspend 屬性設定為 YES:
<key>UIApplicationExitsOnSuspend</key><true/>