0
我想在请求WKWebView
之前设置本地存储在任何iOS版本中都可以使用吗?有没有办法在WKWebView中设置本地存储
找不到方法做,唯一相关的类是WKWebsiteDataStore
https://developer.apple.com/documentation/webkit/wkwebsitedatastore哪些只有方法可以读取和删除。
我想在请求WKWebView
之前设置本地存储在任何iOS版本中都可以使用吗?有没有办法在WKWebView中设置本地存储
找不到方法做,唯一相关的类是WKWebsiteDataStore
https://developer.apple.com/documentation/webkit/wkwebsitedatastore哪些只有方法可以读取和删除。
从@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()
}
}
}
在加载页面之前是否需要在本地存储中设置该值?在这种情况下,您可以加载一个空的Web视图,实现导航委托,并在'didFinishLoad'回调中注入一行JavaScript,将您的值设置为本地存储。现在,加载您原先希望加载的页面。 – paulvs
是的,它用于确定页面的语言。 – sarunw