2013-09-23 39 views
2

我正在開發從iOS應用程序內的WebView運行的HTML5 Web應用程序。一旦用戶升級到iOS7,localStorage停止工作,應用程序(使用jQuery/jQuery Mobile)僅顯示微調器。localStorage不再適用於iOS 7 WebView

我已經使用Modernizr運行了一些測試,並且它沒有在應用程序內的WebView中檢測到對localStorage的支持。這很奇怪,因爲它在iOS7的iPad上運行良好。

有其他人遇到這個問題或有一個神奇的修復?似乎可以工作的唯一客戶端Web存儲API是iOS7 WebView中的Web SQL,如果我可以提供幫助,我寧願不必使用它。

+0

你的html頁面是如何託管的? –

+0

我也面臨這個問題,但只有當Cookies被禁用。否則它正在工作。 – san

+0

html在應用程序中本地運行。我還沒有訪問應用程序代碼,但一旦我明白了,我會嘗試啓用/禁用Cookies並查看會發生什麼。 – pilar1347

回答

1

自升級到iOS7後,存儲在localStorage中的所有內容似乎都會在網頁重新加載時被抹掉。

<script> 
function supports_html5_storage() { 
    try { 
return 'localStorage' in window && window['localStorage'] !== null; 
    } catch (e) { 
    return false; 
    } 
} 
if(supports_html5_storage()){ 
rString=localStorage.getItem("SerialID"); 
alert("We have localStorage support "+rString); 
if(rString) if(rString.length>0) alert("SerialID is present"); 
} else { 
alert("We do not have localStorage support"); 
} 
</script> 
+0

謝謝,但最終成爲應用代碼Cookie政策的一個問題。看到russau的答案。 – pilar1347

0

對不起張貼這作爲一個答案,不能發表評論,但(不要有50個點)。

無論如何,russau的答案,我如何將其與我的HTML5代碼整合?我不是目標編程-C

+0

如果您的應用程序在REAL瀏覽器上運行,則不需要。 –

+0

我明白了。當我甚至無法在只有1 MB的本地Web數據庫中創建表時,我遇到了類似的問題。 –

+0

我把它拼了出來。當你進入safari時,鍵盤左上方的一個小按鈕顯示「private」,點擊它將其禁用。數據庫將正常工作。但! jquery mobile將無法使用後退按鈕。爲此,您必須從代碼中刪除Appcache。 jquerymobile 1.4會解決這個問題,但現在你將不得不在沒有appcache的情況下生活! –