概要
Androidのwebviewで、
Aタグ踏んだときに、
Aタグ指定のURLへ行くのでなく、
指定したURLへ遷移させたい
環境
Android Studio 3.1
Android 6と7.1.1
Kotlin
結論
shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean
を使えば、全てのOSバージョンで呼ばれる。
test.kt
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
println("URLに遷移しようとしています。::" + url + "\n\n")
if(url!!.contains("image")){
//URLに"image"文字が含まれているとき
view?.loadUrl("https://sakudev1.sysken.tokyo")//遷移
return true
}
return super.shouldOverrideUrlLoading(view, url)
}
考察とか
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
これは、Android7以上でよばれる。
しかし、Android7以上でも
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean
がよばれる。
OSバージョン分岐すればよいが、めんどい。分けるべきだろうか?
Androidの対応はどうすればよいのか、どれが普通なのか?
参考文献