WebChromeClient.onCreateWindow

新しいタブや新しいウィンドウの作成を要求された時、WebChromeClient.onCreateWindowが呼ばれる。

WebChromeClient  |  Android Developers

リンク先のURL情報などは、引数のWebViewオブジェクトインスタンスviewに渡されるが、ウィンドウの開き方によっては渡されない場合がある。

リンクに加えて、JavaScriptのwindow.openで新しいウィンドウを開くようなボタンを用意した。

リンク元はWebView.getUrlで、リンク先はWebView.getHitTestResult.getExtraで取得できる。

普通のリンクのリンク元
普通のリンクのリンク元

普通のリンクのリンク元

普通のリンクのリンク先
普通のリンクのリンク先

普通のリンクのリンク先。
というように取得できる。

window.openのリンク元
window.openのリンク元

Button1を押した時のwindow.openのリンク元

window.openのリンク先
window.openのリンク先

window.openのリンク先。
このように、window.openだとリンク先のURLが渡されない問題がある。

Sample/android/WebChromeClient/onCreateWindow/src/WebChromeClient at master · bg1bgst333/Sample · GitHub