2013-11-19 2 views
1

У меня есть ViewController с несколькими UIWebViews. Я использую localstorage.setItem для хранения некоторых переменных. Но проблема в том, что эти переменные доступны только в пределах UIWebViews, в котором было установлено. Если я пытаюсь получить (localstorage.getitem) переменную другого UIWebViews, она дает нулевое значение.Совместное использование HTML5 localstorage из нескольких UIWebViews

WebView1 ===== >>>>localStorage.setItem("var1","val");

WebView2 ===== >>>>alert(localstorage.getItem("var1")); === >> является нулевым

ответ

2

Извините, но это просто, как эта структура разработанный: каждый UIWebView - это собственный экземпляр, выделенный из других экземпляров в одном приложении (так же, как нет встроенных всплывающих окон или функций табуляции).

Если нет абсолютно никакого другого пути, вы можете сделать веб-представления Cordova WebView и программно организовать способ передачи данных между ними через собственный слой (есть также альтернативы, такие как WebViewJavascriptBridge, который выполняет то же самое).

Возможно, вам даже удалось получить данные, необходимые с помощью stringByEvaluatingJavaScriptFromString, в известную структуру данных заранее. Но наличие Javascript в UIWebView называется родной стороной - это хорошо известная трудная вещь, которую можно решить только с помощью мостовых решений, подобных тому, что я упоминал во втором абзаце.

+0

Однако я видел странное поведение. Если вы ставите предупреждение в один 'UIWebView', он появляется в другом. – Amulya

+0

Как вы можете определить, из какого вида появляются предупреждения? –

+0

просто поместил разные сообщения в оповещение разных 'UIWebViews', чтобы идентифицировать его. – Amulya

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