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