読者です 読者をやめる 読者になる 読者になる

Androidはワンツーパンチ 三歩進んで二歩下がる

Android卵プログラマーの記録ブログ

AndroidのWebViewでiFrame内のリンクをクリック時に外部ブラウザに飛ばす方法

WebViewにてURLで処理を制御する時にお馴染みですが、
WebViewClientのオブジェクトをWebViewにセットして、shouldOverrideUrlLoadingメソッドをoverrideする方法を取ります。
ですが、iFrame内のリンクをクリックした時はshouldOverrideUrlLoadingが呼ばれません。
iFrame内でリンク先が遷移するので、外部ブラウザに飛ばしたり他の処理をさせたい場合は別のメソッドをoverrideする必要があります。

onLoadResourceを使って例えば以下のように記述すると、iFrameのイベントを拾って外部ブラウザに遷移させることが出来ます。

            @Override
            public void onLoadResource(WebView view, String url) {
                if (url.contains("https://www.google.co.jp/")) {
                   mWebView.stopLoading();
                   final Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                   mActivity.startActivity(i);
                }
            }