2017-07-04 289 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() 

     }    
    } 
} 
相關問題