布団の中にいたい

Androidアプリ開発の勉強をしている傍らで、elasticsearchとかをいじってみたりしています。最近は数学の勉強が楽しくなってきました。

WebViewでlinkタップ時にブラウザに飛ばないようにする

WebViewでlinkやボタンをタップすると,何もしていない場合だとWebViewからデフォルトのブラウザに飛ばされます.今回はWebViewからブラウザに飛ばすのではなく,WebView内で完結させたかったので,そのやり方を調べました.

やり方は簡単で以下でできるようです.

webView.setWebViewClient(object : WebViewClient() {
    override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
        return false
    }
})

WebViewClient | Android Developers

shouldOverrideUrlLoadingはWebViewで新しいurlに対してloadingが走ったときに呼ばれるメソッドです.ブラウザに飛ばないようにするためにはWebViewに設定するWebViewClientでshouldOverrideUrlLoadingでfalseを返してあげればいいです.