2017-02-23 4 views
0

カスタムwebviewclientとその代理人(shouldInterceptRequestとonLoadResource)を装備したWebviewを完全に実装しましたが、特定のURLへのリンクをクリックし、ウェブビューがそのURLにナビゲートしないようにします。ネイティブブラウザで特定のURLを起動するように自分のAndroid WebViewを設定したい

私は内部ネットワークのサイトでカスタム動作を行うために "shouldInterceptRequest"を実装しています。ユーザーがネイティブブラウザで開くこの特定のサイトへのリンクをクリックすると、 shouldInterceptRequest "このデリゲートはWebResourceResponseを想定しているため、このURLのロードを防ぐ方法はわかりません。私がnullを返すと、webviewはURLのロードを開始します。

+0

target = "_ blank"またはwindow.openが呼び出されたタグをクリックすると、WebChromeClientクラスの[onCreateWindowメソッド](https://developer.android.com/reference/android/webkit/WebChromeClient.html#onCreateWindow )が呼び出されます。 onCreateWindowメソッドをオーバーライドするのはどうですか? – gilchris

答えて

0

boolean shouldOverrideUrlLoading (WebView view,WebResourceRequest request)を無効にして、trueを返し、ネイティブブラウザを起動します。

+0

shouldOverrideUrlLoadingはこのリンク(javascript href)をクリックしても起動しません。 shouldInterceptRequestとonLoadResourceのみが起動します。 – Chicowitz

関連する問題