如何在应用程序中打开浏览器中与webview url无关的链接
我怎么能打开外部链接不相关的web浏览器中的url,我正在使用kotlin lang在webview中创建android应用程序。 例如。 mydomain.com/链接应在webview -notmydomain.com/中打开,应在浏览器中打开
尝试这个 :-
在下面的代码中,我们只加载匹配特定域的那些url,其余的被导航到浏览器。 您可以根据您的需要自定义正则expression式。 在这里,我重写了两个方法,因为在API级别21中的shouldOverrideUrlLoading弃用。
val webview = findViewById(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/")
Intent browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com")); startActivity(browserIntent);
它适用于我,使用这个。
String url = "http://www.example.com"; Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i);
顺便说一句,有时候它可能也是很好的检查,如果url实际上是网络URL例如,你想玩游戏应用程序打开商店URL,而不是Webview加载播放商店页面
URLUtil.isNetworkUrl(url)
val url = "http://www.example.com" val i = Intent(Intent.ACTION_VIEW) i.data = Uri.parse(url) startActivity(i)
它适用于我,在kotlin中使用。
- 从版本控制的设置创建一个teamcity项目
- Android studio 2.3:无法初始化类org.jetbrains.kotlin.android.actions.NewKotlinActivityAction
- RecyclerView不可滚动,并且项目单击不在导航抽屉recyclerview中工作
- Android工作室不解决在IDE中使用Kotlin(.kt)编写的类,但编译正常
- Dagger 2 + Kotlin无法将Presenter插入到View中
- FirebaseRecyclerAdapter – populateViewHolder不访问数据
- IllegalArgumentException:不支持addAccount
- 找不到引用类kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck
- Kotlin:解决genericsinheritance
- Kotlin – 不变的参考
- Android:将数据发送回MainActivity