我有一个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
中调用本机端是一件众所周知的困难事情,只能通过使用第二段中提到的桥接解决方案来解决。