Phonegap – локальное хранилище не работает – Android

Я использую Local Storage для передачи значений между страницами, чтобы создать прокрутку для эффекта (ссылка на клики пользователя и прокручивается до определенной части страницы на основе ID)

Ранее я использовал файлы cookie, но, похоже, не работал на Android, я читал, что локальное хранилище поддерживается так, что переключается на него. Он отлично работает в браузере, но как только он упакован как родное приложение, я теряю всю функциональность? API заявляет, что он должен поддерживаться, любые идеи?

Вот мой код:

Базовый URL:

var storage = window.localStorage; $("a.scroll_link").click(function(event) { event.preventDefault(); var value = $(this).attr("id"); storage.setItem("key",value); console.log(value); window.location=$(this).attr("href"); }); 

Получающий URL:

 $(function () { var value = window.localStorage.getItem("key"); if (value != "" && value != "undefined" && value != null) { var storage = window.localStorage; storage.setItem("key",value); var scroll_type = ""; if ($.browser.webkit) { scroll_type = "body"; } else { scroll_type = "html"; } $(scroll_type) .stop() .animate({ //get top-position of target-element and set it as scroll target scrollTop: ($("#" + value).offset().top - 25) //scrolldelay: 1.5 seconds }, { duration: 1500, complete: function () { storage.removeItem("key"); }, }); } }); 

Код отлично работает в браузере, а не изначально, какие-то идеи?

Благодаря,

Используйте document.addEventListener ("deviceready", onDeviceReady, false) вместо $ (function () {…}

http://docs.phonegap.com/en/2.5.0/cordova_events_events.md.html#deviceready

1.Glad, чтобы знать, что вы решаете свою первую проблему. Как говорит gmh04, я думаю, вы должны заменить событие init на «deviceready», которое запускается при запуске приложения.

2. Вы имеете в виду window.localStorage.getItem («ключ»), возвращающий значение null в получающем URL? Я точно не сталкиваюсь с проблемой, как то, что вы описываете. Тем не менее, вы можете попытаться переместить свой код при получении URL-адреса на той же странице базового URL-адреса. Я пробовал на время и очень уверен, что localStorage будет работать на одной странице.

Я хотел бы добавить, что в версии 2.6.0 версии cordova.js есть ошибка, из-за которой localStorage не работает на Android:

https://issues.apache.org/jira/browse/CB-3063

В версии 2.5.0 он отлично работает, и он уже исправил 2.7.0 rc.