UIWebView では、次のことを実行できますJSContext
。
[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]
同じ方法は WKWebView では機能せず、このコード行に到達するとアプリがクラッシュします。
WKWebView で JSContext を取得する方法はありますか?
前もって感謝します。
UIWebView では、次のことを実行できますJSContext
。
[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]
同じ方法は WKWebView では機能せず、このコード行に到達するとアプリがクラッシュします。
WKWebView で JSContext を取得する方法はありますか?
前もって感謝します。
レイアウトとjavascriptは別のプロセスで処理されるため、コンテキストを取得できません。
代わりに、スクリプトを webview 構成に追加し、ビュー コントローラー (または別のオブジェクト) をスクリプト メッセージ ハンドラーとして設定します。
次に、次のように JavaScript からメッセージを送信します。
window.webkit.messageHandlers.interOp.postMessage(message)
スクリプト メッセージ ハンドラーはコールバックを受け取ります。
- (void)userContentController:(WKUserContentController *)userContentController
didReceiveScriptMessage:(WKScriptMessage *)message{
NSLog(@"%@", message.body);
}