从inAppBrowser设置的localStorage值没有显示在外面 - cordova

时间:2014-06-18 07:15:03

标签: javascript android cordova local-storage inappbrowser

我正在从inAppBrowser视图中设置localStorage。假设在inAppBrowser视图中我已经设置了

localStorage.setItem("page","10");

在inAppBrowser中我想检查是否设置了值,所以我检查了

alert(localStorage.getItem("page"));

它显示10.现在我关闭了inAppBrowser视图并返回到我的主视图。然后我再次给予

 alert(localStorage.getItem("page"));

检查退出事件侦听器中的值。它显示空值或不同的过去值但不是10.你能告诉我什么是错的??????????

我也试过了window.localStorage.setItem("page","10");

基本上我想从inAppBrowser视图中获取一个值。我尝试了setInterval and executeScript示例,但该示例中存在问题。当你在inAppBrowser中做一些耗费大量内存的繁重工作时,之前的活动/网页会被杀死或挂起。因此,这不是有效的。有没有简单的方法可以使用localStorage和inAppBrowser来获取从inAppBrowser到主页的值?

2 个答案:

答案 0 :(得分:3)

Jeremy J Starcher& MarcinMikołajczyk评论说,这是不可能的。这是因为相同的域策略和inAppBrowser是一个新的实例,它不允许以前的webview访问它。

解决方案是在主视图或父webview中发回所需数据,然后将它们放在localStorage中。

答案 1 :(得分:3)

看看这篇精彩的博文,讨论主视图和InAppBrowser之间的通信:

http://blogs.telerik.com/appbuilder/posts/13-12-23/cross-window-communication-with-cordova%27s-inappbrowser

基本上,它是通过将JavaScript注入InAppBrowser进行评估并捕获结果来完成的。