2017-07-04 137 views
0

我想在请求WKWebView之前设置本地存储在任何iOS版本中都可以使用吗?有没有办法在WKWebView中设置本地存储

找不到方法做,唯一相关的类是WKWebsiteDataStorehttps://developer.apple.com/documentation/webkit/wkwebsitedatastore哪些只有方法可以读取和删除。

+0

在加载页面之前是否需要在本地存储中设置该值?在这种情况下,您可以加载一个空的Web视图,实现导航委托,并在'didFinishLoad'回调中注入一行JavaScript,将您的值设置为本地存储。现在,加载您原先希望加载的页面。 – paulvs

+0

是的,它用于确定页面的语言。 – sarunw

回答

2

从@paulvs评论这里是我做的。

设置导航委托来收听完成的回调。

webView.navigationDelegate = self

然后回调,您在localStorage的值,并根据需要设置。

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { 

    webView.evaluateJavaScript("localStorage.getItem(\"key\")") { (result, error) in 

     // check if result is what I want 
     // if it is what I want, do nothing 
     // if not set it 
     webView.evaluateJavaScript("localStorage.setItem(\"key\", \"value\")") { (result, error) in 

      webView.reload() 

     }    
    } 
} 
相关问题