Cómo abrir enlaces no relacionados con la URL de la vista web en el browser de la aplicación

¿Cómo puedo abrir enlaces externos no relacionados con la URL de la vista web en el browser, estoy usando kotlin lang para crear aplicaciones de Android en webview. Por ej. Los enlaces de mydomain.com/ deben abrirse en la vista web -notmydomain.com/ deben abrirse en el browser

Intent browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com")); startActivity(browserIntent); 

Funciona para mí, usa esto.

 String url = "http://www.example.com"; Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i); 

Por cierto, también puede ser bueno comprobar si url es en realidad URL de networking, por ejemplo, si quieres jugar URL de tienda abierta por la aplicación de reproducción, no Webview cargando la página de Play Store.

 URLUtil.isNetworkUrl(url) 
 val url = "http://www.example.com" val i = Intent(Intent.ACTION_VIEW) i.data = Uri.parse(url) startActivity(i) 

Funciona para mí, usa esto en kotlin.

Prueba esto :-

En el siguiente código, solo cargamos las URL que coinciden con dominios específicos, el rest de ellas se navega hacia el browser. Puede personalizar la expresión regular de acuerdo a su necesidad. Aquí anulo dos methods debido a la desactivación de shouldOverrideUrlLoading en el nivel 21 de la API.

 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/") 
  • Autenticación Firebase de Android
  • Clases de almacenamiento en lenguaje de progtwigción Kotlin
  • ¿Cómo puedo cambiar las reglas de resaltado de syntax para una variable con el modificador lateinit en IntelliJ (Kotlin)?
  • Refactorización del código de Kotlin
  • Crear class CSS con kotlinx.html DSL
  • Barra de navigation inferior "Fantasma" cuando el fragment se carga en la actividad del hogar
  • Método de invocación de objects burlados (Mockito + Kotlin)
  • Anotar getter de la propiedad
  • Error de aplicación cuando bash enviar SMS
  • La notación Infix y con (...) no funciona como esperaba
  • modificador de visibilidad privada y subpackages