2016-10-19 14 views
5

今私はUIWebViewを使用しており、canInitWithRequest:NSURLProtocolです。私はすべての要求を傍受して、それを何とかすることができます。WKWebViewの傍受要求

新しいWKWebViewでは、この方法はありません。同様のものは見つかりませんでした。

誰かがこの問題を解決しましたか?

+1

いいえ「WKWebView」はこれをサポートしていません。彼らは記憶を改善し、呼び出しを傍受するオプションを与えなかったけれども変わった。 –

+1

シンプルならここhttp://stackoverflow.com/questions/24208229/wkwebview-and-nsurlprotocol-not-workingで確認できます。 –

+0

iOS 11では、Webビュー設定(https://developer.apple.com/documentation/webkit/wkwebviewconfiguration/2875766-seturlschemehandler?language=objc)にスキームハンドラを追加できます。 iOS 10以前のリクエストをインターセプトするのはもっと複雑です。デバイス上でカスタムHTTPサーバーを使用する必要があります。 – clemens

答えて

0

私は盲目的に推測しています。なぜなら、私は私の窓のコンピュータしか持っていないからです。ここでアップルのデベロッパードキュメントを読むことで、私が集めた情報が得られます。その情報は、問題の解決方法に関するいくつかのアイデアにつながるかもしれません。 WKWebView

に基づい

は、ウェブコンテンツのロードを追跡するためにWKUIDelegateプロトコルに準拠したオブジェクトにデリゲートプロパティを設定します。また

、私たちは、

weak var navigationDelegate: WKNavigationDelegate? { get set }

とあなたが受け入れるWeb表示の処理中にトリガーされるカスタム動作を実装WKNavigationDelegateプロトコルヘルプの方法を私たちのnavigationDelegateを設定することができます参照してくださいナビゲーション要求をロードし、完了することができる。

次に、私たちのカスタムWKNavigationDelegateを作成して設定したら、私たちが探しているものを傍受するいくつかの方法を無効にします。私はパラメータとしてWKNavigationを受け取るので、何らかの関心のあるResponding to Server Actionsセクションが見つかりました。さらに、WKNavigationActionWKNavigationResponseをスキミングして、目標を達成するのに役立つかもしれないものがあるかどうかを確認してください。

私はこの質問を解決できるように何を試していいか分かりませんが、100%間違っているかもしれないアイデアは自分で試してみません。

+1

ナビゲーションデリゲートは、ajaxリクエストや画像ダウンロードのためのexmapleで起動しません。 –

1

(iOS 11)WKWebViewには、WKURLSchemeHandlerというカスタムスキームハンドラがあり、これを使用してカスタムイベントをインターセプトできます。このプロジェクトの詳細については、 をご覧ください。 https://github.com/BKRApps/KRWebView

関連する問題