WebView
Explicación del concepto de WebView.
DEFINICIÓN
Hereda de:

Una View que presenta páginas web.
USO BÁSICO
En la mayoría de los casos se recomienda utilizar un navegador estándar como Chrome para mostrar éste contenido a los usuarios. Para ello utilizamos un intent.
Esto es debido a que, aunque el WebView permite mostrar este contenido, se pierden algunas de las características base de cualquier navegador estándar.
Una WebView es útil cuando se necesita tener un control sobre la UI y las configuraciones avanzadas de navegación. De esta manera se puede desarrollar un diseño concreto de navegación para nuestra APP.
USO DESDE XML
<WebView
android:id="@+id/wv"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
No se muestra nada en la Activity por que es necesario configurar el WebView antes de poder hacer uso de él.
CONFIGURACIÓN
Para configurar un WebView hay que realizar varios pasos:
Solicitar permiso de Internet
En primer lugar se debe ir al AndroidManifest.xml
y solicitar permisos para el uso de Internet. Esto se hace con la siguiente línea de código:
<manifest>
....
<uses-permission android:name="android.permission.INTERNET" />
<application>
.....
Ejecutar el web Browser
Esto lo realizamos en el MainActivity.kt
package com.example.android.appdeejemplo
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.webkit.WebView
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val webView: WebView = findViewById(R.id.wv)
val url = "http://www.google.es"
webView.loadUrl(url)
}
}
Como puede ver, no recibimos el resultado que queremos ya que nos reenvía directamente a seleccionar navegador.
Esto ocurre por que, por defecto, no está activado Javascript.
Activar Javascript
Para activar Javascript
debemos hacer lo siguiente:
En primer lugar, crear una instancia de
WebSettings
.
val webSettings: WebSettings = webView.settings
Después, en esas
WebSettings
, activamos Javascript
webSettings.javaScriptEnabled = true
Por último, relacionamos estas
WebSettings
con nuestroWebView
creando unWebViewClient
:
webView.webViewClient = WebViewClient()
De esta manera nos queda:
package com.example.android.appdeejemplo
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.webkit.WebSettings
import android.webkit.WebView
import android.webkit.WebViewClient
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val webView: WebView = findViewById(R.id.wv)
val url = "http://www.google.es"
val webSettings: WebSettings = webView.settings
webSettings.javaScriptEnabled = true
webView.webViewClient = WebViewClient()
webView.loadUrl(url)
}
}
Last updated