2014-10-30 41 views
1

在我的應用程序中,我使用Modernizr來檢測各種功能。爲了檢測IndexedDB是否可用,我使用「Modernizr.indexeddb」。在iOS模擬器(v8.1)中,它返回false! (它應該返回true,因爲IndexedDB自iOS 8.0起可用 - 不過它是buggy behavior)。iOS-Simulator中IndexedDB的Modernizr檢測

(應用程序使用AngularJS,MobileAngularUI和jQuery,但這不相關的,以我認爲這個問題。)

我檢查了桌面,Safari和Chrome相同的應用程序:Modernizr.indexeddb返回true。

我重新檢查,如果indexedDB在此設備上支持此網站: https://www.browserleaks.com/modernizr - 它顯示模擬器的Safari瀏覽器內部支持IndexedDB。

要確保我正在Modernizr的最新版本,從這個網址我重新下載的Modernizr: http://modernizr.com/downloads/modernizr-latest.js

編輯This Pluker包含一個按鈕,你可以檢查Modernizr.indexeddb的輸出。 我在iOS8.1設備和8.1 iOS模擬器上測試了這個。在這兩款設備上,返回值都是正確的!

該按鈕會觸發功能:

function checkIndexedDB() { 
    alert('Modernizr.indexeddb = ' + Modernizr.indexeddb); 
}; 

爲什麼我的應用程序(即在科爾多瓦容器中運行)沒有IndexedDB的可用?

回答

3

我找到了答案 - IndexedDB在Cordova應用程序中不可用。 (今日狀態:2014年10月31日)

在iOS8中引入了一個新組件WKWebView。科爾多瓦仍然使用舊的UIWebView組件。他們想切換到新的WKWebView,but there are some bugs apple has to solve

不幸的是,在WKWebView一個嚴重的錯誤,這錯誤無法加載文件://網址,因此阻礙了我們的努力。該功能在設備上運行iOS 8 beta 1至3(它始終在iOS 8模擬器中運行),但在此之後便會崩潰。我不確定錯誤修復的ETA是什麼,但它在蘋果的雷達中(字面上!)。

更多相關信息請參見本: Does iOS 8 support IndexedDB with UIWebView?