2014-04-04 18 views
0

我要確定我的Flex移動應用程序是否在iOS設備上運行的IOS與7如何從一個Flex移動應用程序內確定IOS版本(AIR)

我需要找出因爲我想如果它在IOS 7上運行以降低指標(電池,WiFi等)的空間,請降低應用程序的操作欄。

根據文檔,Flex Capabilities類不向我提供IOS版本號。

我能想到的唯一選擇是構建本機擴展並使用IOS功能查詢版本。但我並不真的期望能夠建立這種擴展。更不用說了,因爲顯然你需要帶XCode的Mac來構建IOS部分,而且我不擁有Mac。裝有OSX的虛擬機可能是我最後的選擇。

也許你知道另一種選擇?

+1

您是否擁有最新版本的Flex和Adobe AIR?他們應該爲您正確定位應用程序。 – Pulsar

+0

不,我使用的Flex 4.6,不知道/發現這是固定的,謝謝! – Asimov

回答

1

的Flex 4.12實際上提供了一種方法,通過CSS來解決這個問題(4.12介紹OS和OS版本檢查爲好,這是真棒):

@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而不是第二行。

+0

謝謝!現在我面臨遷移到Apache Flex的任務。 – Asimov

+0

啊,這也適用於Flex 4.6,不需要遷移(還)。 – Asimov

+1

最上面的部分是在Flex 4.12('os-platform','min-os-version'和'osStatusBarHeight')中實現的,所以你絕對必須升級才能使用它(老實說,升級應該是無痛的) 。第二部分一直在AIR中,只要我記得。你只是解析OS字符串,在iOS上包含版本號。根本不需要Flex。 –

相關問題