2013-09-23 2 views
2

Я разрабатываю веб-приложение HTML5, которое запускается из WebView внутри приложения iOS. После обновления пользователей до iOS7, localStorage перестает работать, и приложение (которое использует jQuery/jQuery Mobile) просто показывает счетчик.localStorage больше не работает в iOS 7 WebView

Я провел несколько тестов с использованием Modernizr и не обнаружил поддержку localStorage в WebView в приложении. Это странно, потому что он отлично работает в Safari на iPad с iOS7.

Неужели кто-нибудь еще сталкивается с этой проблемой или имеет магическое исправление? Единственный клиентский API веб-хранилища, который, похоже, работает, - это Web SQL в Web-браузере iOS7, и если я могу помочь, мне бы не пришлось его использовать.

+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 кода приложения. См. Ответ Русау. – pilar1347

0

Извините за размещение этого в качестве ответа, пока не могут комментировать (Не есть 50 баллов).

В любом случае, ответ russau, как мне интегрировать это с моим кодом HTML5? Я не программирую в объективе-C

+0

Вам не нужно, если ваше приложение работает в браузере REAL. –

+0

Я вижу. У меня аналогичная проблема, когда я не могу создать таблицу в локальной базе данных sql, которая составляет всего 1 МБ. –

+0

Я понял это. Когда вы входите в сафари, маленькая кнопка в левом верхнем углу клавиатуры говорит «private», нажмите ее, чтобы отключить ее. База данных будет работать нормально. Но! jQuery mobile не сможет использовать кнопку «Назад». Для этого вам нужно удалить appcache из своего кода. jquerymobile 1.4 исправит это, но пока вам придется жить без аппетита! –

Смежные вопросы