En una aplicación de Android, puede ser necesario abrir una URL por separado en un navegador.
Estos apuntes muestra cómo puede abrir una URL mediante kotlin, el enlace web será abierto en el buscador web integrado. Esto permite que su aplicación abra una página web sin necesidad de incluir el permiso de INTERNET en su archivo de manifiesto.
Función openWebPage
Con la siguiente función kotlin podrá abrir un enlace web des de un dispositivo Android
fun openWebPage(context: Context, urlStr: String?) {
try {
val intent = Intent(Intent.ACTION_VIEW)
intent.data = Uri.parse(urlStr)
if (intent.resolveActivity(context.packageManager) != null) {
ContextCompat.startActivity(context, intent,null)
} else {
Toast.makeText(context, "Need a web browser app", Toast.LENGTH_SHORT).show()
}
} catch (e: Exception) {
e.printStackTrace()
}
}
Su uso es muy simple solo debe pasar un contexto y la dirección web, si en el dispositivo android hay un navegador instalado abrirá el recurso web en él.
//from Activity
openWebPage( this , "https://codelaby.es" )
//from Fragment
openWebPage( requireContext() , "https://codelaby.es" )
Usando funciones de extensión
Otra forma es usando extensiones de función Kotlin
fun Uri?.openInBrowser(context: Context) {
this ?: return // Do nothing if uri is null
val browserIntent = Intent(Intent.ACTION_VIEW, this)
if (browserIntent.resolveActivity(context.packageManager) != null) {
ContextCompat.startActivity(context, browserIntent, null)
} else {
return
}
}
fun String?.asUri(): Uri? {
return try {
Uri.parse(this)
} catch (e: Exception) {
null
}
}
Su uso es el siguiente
"https://codelaby.es".asUri()?.openInBrowser(requireContext())