#author("2020-04-20T05:18:31+00:00","default:wikiwriter","wikiwriter") &tag(WKWebView); *目次 [#l4917058] #contents *関連ページ [#q5a15af0] *参考情報 [#r46145e6] *基本 [#laee947f] -iOSやmacOSで利用できるあらたなWeb Viewコンポーネント -従来のUIWebViewと比較してクラッシュ率が低いらしい。 -ただし使用方法が結構異なるので注意が必要。 *Tips [#n092e4f7] **キャッシュをクリアする [#eb29c891] -SafariでうまくいってWKWebViewで上手くいかない場合キャッシュのせいかもしれない(CKEditorの高さが上手く調整できないとか)。 -手動でキャッシュをクリアする方法は不明。 -コードからは以下のようにしてクリアできる。 #pre{{ func clearCache() { let websiteDataTypes = NSSet(array: [WKWebsiteDataTypeDiskCache, WKWebsiteDataTypeMemoryCache]) let date = Date(timeIntervalSince1970: 0) WKWebsiteDataStore.default().removeData(ofTypes: websiteDataTypes as! Set<String>, modifiedSince: date, completionHandler:{ }) } }} **target="_blank"のリンクを開く [#m7500511] -[[WKWebViewでtarget="_blank"なリンクが開かない時の対処法:https://qiita.com/ShingoFukuyama/items/b3a1441025a36ab7659c]]に解決策がある。 -UIWebViewの時と基本的な考え方は同じ。ようするにtarget="_blank"の場合新しくウィンドウを作成する必要があり、そのための処理を作り込む必要がある。 -WKNavigationDelegate のwebView(_:decidePolicyFor:decisionHandler:)を作成しその中で処理を行う。 -またはWKUIDelegateのwebView(_:createWebViewWith:for:windowFeatures:)を使用する。 -target="_blank"の場合webView(_:decidePolicyFor:decisionHandler:)が呼ばれるが、window.openの場合webView(_:createWebViewWith:for:windowFeatures:)しか呼ばれない。