如何在浏览器中打开与webview url无关的外部链接,我正在使用kotlin lang在webview中创建android应用程序。 例如。 mydomain.com/链接应该在webview中打开 -notmydomain.com/应该在浏览器中打开
答案 0 :(得分:2)
试试这个: -
在下面的代码中,我们只加载那些与特定域相匹配的URL,其余部分将导航到浏览器。您可以根据需要自定义正则表达式。在这里,我重写了两种方法,因为在api级别21中弃用了 shouldOverrideUrlLoading 。
val webview = findViewById<WebView>(R.id.webview)
webview.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
val url: String = request?.url.toString()
if (match(url,"(http|https)://(.*).kotlinlang.org/")) {
webview?.loadUrl(url)
} else {
val i = Intent(Intent.ACTION_VIEW)
i.data = Uri.parse(url)
startActivity(i)
}
return true
}
override fun shouldOverrideUrlLoading(view: WebView?, url: String): Boolean {
if (match(url,"(http|https)://(.*).kotlinlang.org/")) {
webview?.loadUrl(url)
} else {
val i = Intent(Intent.ACTION_VIEW)
i.data = Uri.parse(url)
startActivity(i)
}
return true
}
}
webview.loadUrl("https://kotlinlang.org/")
答案 1 :(得分:1)
val url = "http://www.example.com"
val i = Intent(Intent.ACTION_VIEW)
i.data = Uri.parse(url)
startActivity(i)
它对我有用,在kotlin中使用它。
答案 2 :(得分:0)
String url = "http://www.example.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
BTW有时检查网址是否真的是网络网址也是一件好事。您想播放由播放应用程序打开的商店URL,而不是Webview加载播放商店页面
URLUtil.isNetworkUrl(url)