4

我想使用本地存储在两个 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"]]];

问题是存储事件永远不会被触发。

4

0 回答 0