在多个UIWebView之间共享HTML5本地存储



我有一个ViewController,它有多个UIWebViews。我正在使用localstorage.setItem来存储一些变量。但问题是,这些变量只能在已设置的UIWebViews中访问。如果我试图获取(localstorage.getitem)其他UIWebViews的变量,它给出的值为null。

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

WebView2======>>alert(localstorage.getItem("var1"));===>>为空

抱歉,框架就是这样设计的:每个UIWebView都是自己的实例,与同一应用程序中的其他实例隔离(就像没有内置的弹出窗口或选项卡功能一样)。

如果绝对没有其他方法,你可以制作Cordova WebView的web视图,并通过程序安排某种方式通过本地层在它们之间传输数据(也有其他选择,比如WebViewJavascriptBridge,可以实现同样的功能)。

也许您甚至可以通过预先将使用stringByEvaluatingJavaScriptFromString所需的数据注入到已知的数据结构中来获得。但是,让Javascript在UIWebView中调用本机端是一件众所周知的困难事情,只能通过使用第二段中提到的桥接解决方案来解决。

最新更新