我想使用本地存储在两个 uiwebview 之间共享数据。这样他们就可以通过javascript相互通信。
它适用于 chrome(pc) 和 safari(iphone) 的两个选项卡,但不适用于两个 uiwebviews。
这是一个简单的演示:
var txt = document.getElementById("txt");
window.addEventListener("storage",function(e){
if(e.key=="txt"){
txt.value = e.newValue;
}
},false);
txt.addEventListener("input",function(){
localStorage["txt"]=txt.value;
},false);
和 Obj-c:
webview = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 240)];
[self.view addSubview:webview];
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://172.22.182.29:8000/onstoragetest.html"]]];
UIWebView *webview2 = [[UIWebView alloc]initWithFrame:CGRectMake(0, 240, 320, 240)];
[self.view addSubview:webview2];
[webview2 loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://172.22.182.29:8000/onstoragetest.html"]]];
问题是存储事件永远不会被触发。