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/") 
  • Sitio de Android con RxJava manejar resultado de consulta vacío
  • ¿Cómo declarar variables en Android (Kotlin) usando el estilo del código de Google?
  • Nuevo para Kotlin ... tener problemas con Opcionales y Casting
  • No se ha podido cargar el error de class 'kotlin.collections.CollectionsKT' al intentar sincronizar gradle
  • Cómo importar packages Java en Kotlin Native
  • Referencia enum instancia directamente sin class en Kotlin
  • Cómo destruir un constructor en Kotlin
  • Crear classs de Kotlin en Android Studio usando acciones de intención
  • ¿Cómo iniciar dos constructores en kotlin con class interna?
  • Usando la cláusula Kotlin WHEN para <, <=,> =,> comparaciones
  • Aparece el error "No coinciden los types" cuando uso una function como parámetro en Kotlin.