WKWebView
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(WKWebView);
*目次 [#l4917058]
#contents
*関連ページ [#q5a15af0]
*参考情報 [#r46145e6]
*基本 [#laee947f]
-iOSやmacOSで利用できるあらたなWeb Viewコンポーネント
-従来のUIWebViewと比較してクラッシュ率が低いらしい。
-ただし使用方法が結構異なるので注意が必要。
*Tips [#n092e4f7]
**キャッシュをクリアする [#eb29c891]
-SafariでうまくいってWKWebViewで上手くいかない場合キャッ...
-手動でキャッシュをクリアする方法は不明。
-コードからは以下のようにしてクリアできる。
#pre{{
func clearCache() {
let websiteDataTypes = NSSet(array: [WKWebsiteDat...
let date = Date(timeIntervalSince1970: 0)
WKWebsiteDataStore.default().removeData(ofTypes: ...
}
}}
**window.openやtarget="_blank"のリンクを開く [#m7500511]
-[[WKWebViewでtarget="_blank"なリンクが開かない時の対処法...
-UIWebViewの時と基本的な考え方は同じ。ようするにtarget="_...
-WKNavigationDelegate のwebView(_:decidePolicyFor:decisio...
-またはWKUIDelegateのwebView(_:createWebViewWith:for:wind...
-target="_blank"の場合webView(_:decidePolicyFor:decisionH...
-例えばckeditorを使っているアプリで、リンクを開きたい場合...
#pre{{
func webView(_ webView: WKWebView, createWebViewW...
guard let url = navigationAction.request.url ...
return nil
}
guard let targetFrame = navigationAction.targ...
_ = parent.openLinkWithSafari(url: url)
return nil
}
return nil
}
}}
**SwiftUIで使う [#pd199d0f]
-AppKit/UIKitの場合とだいぶぶん同じ感覚でいけるが一部異な...
-delegateの設定。Coordinatorを設定する。
#pre{{
func makeNSView(context: Context) -> WKWebView {
webView.navigationDelegate = context.coordinator
webView.uiDelegate = context.coordinator
loadServerUrl()
return webView
}
func makeCoordinator() -> Coordinator {
return Coordinator(self)
}
class Coordinator: NSObject, WKNavigationDelegate, WK...
let parent: WebView
}
(以下省略)
}}
終了行:
&tag(WKWebView);
*目次 [#l4917058]
#contents
*関連ページ [#q5a15af0]
*参考情報 [#r46145e6]
*基本 [#laee947f]
-iOSやmacOSで利用できるあらたなWeb Viewコンポーネント
-従来のUIWebViewと比較してクラッシュ率が低いらしい。
-ただし使用方法が結構異なるので注意が必要。
*Tips [#n092e4f7]
**キャッシュをクリアする [#eb29c891]
-SafariでうまくいってWKWebViewで上手くいかない場合キャッ...
-手動でキャッシュをクリアする方法は不明。
-コードからは以下のようにしてクリアできる。
#pre{{
func clearCache() {
let websiteDataTypes = NSSet(array: [WKWebsiteDat...
let date = Date(timeIntervalSince1970: 0)
WKWebsiteDataStore.default().removeData(ofTypes: ...
}
}}
**window.openやtarget="_blank"のリンクを開く [#m7500511]
-[[WKWebViewでtarget="_blank"なリンクが開かない時の対処法...
-UIWebViewの時と基本的な考え方は同じ。ようするにtarget="_...
-WKNavigationDelegate のwebView(_:decidePolicyFor:decisio...
-またはWKUIDelegateのwebView(_:createWebViewWith:for:wind...
-target="_blank"の場合webView(_:decidePolicyFor:decisionH...
-例えばckeditorを使っているアプリで、リンクを開きたい場合...
#pre{{
func webView(_ webView: WKWebView, createWebViewW...
guard let url = navigationAction.request.url ...
return nil
}
guard let targetFrame = navigationAction.targ...
_ = parent.openLinkWithSafari(url: url)
return nil
}
return nil
}
}}
**SwiftUIで使う [#pd199d0f]
-AppKit/UIKitの場合とだいぶぶん同じ感覚でいけるが一部異な...
-delegateの設定。Coordinatorを設定する。
#pre{{
func makeNSView(context: Context) -> WKWebView {
webView.navigationDelegate = context.coordinator
webView.uiDelegate = context.coordinator
loadServerUrl()
return webView
}
func makeCoordinator() -> Coordinator {
return Coordinator(self)
}
class Coordinator: NSObject, WKNavigationDelegate, WK...
let parent: WebView
}
(以下省略)
}}
ページ名: