APUNTES ANDROID
  • Introducción
  • Apuntes Linux
  • Apuntes Red Team
  • Apuntes Blue Team
  • Apuntes Python
  • Ricardev github
  • Escribiendo tu primera App
    • Instalar Android Studio
    • Proyecto
    • Ejecutar una App
    • Anatomía del Proyecto
      • Gradle scripts
      • AndroidManifest.xml
      • Java
      • Res
    • Componentes de una App
      • Activities
      • Fragments
      • Views y ViewGroups
      • Services
      • Broadcast Receivers
      • Intents
      • Content Provider
      • Widgets
    • Paradigmas de diseño
      • Views
        • Pallete Texts
          • TextView
          • EditText
          • AutoCompleteTextView
        • Pallete Buttons
          • Button
          • ImageButton
          • Chip y ChipGroup
          • RadioButton y RadioGroup
          • CheckBox
          • ToggleButton
          • Switch
          • FloatingActionButton
        • Pallete Widgets
          • ImageView
          • ShapeableImageView
          • WebView
          • VideoView
          • CalendarView
          • ProgressBar
          • SeekBar
          • RatingBar
          • SearchView
          • Divider
        • Custom Views
        • View Binding
      • Jetpack Compose
    • Layouts
      • FrameLayout
      • Linear Layout
      • Relative Layout
      • Constraint Layout
      • Table Layout
      • Grid Layout
    • Containers
      • Spinner
      • RecyclerView
      • CardView
      • ScrollView y HorizontalScrollView
      • ViewPager2
      • AppBarLayout y BottomAppBar
      • NavigationView y BottomNavigationView
      • Toolbar y MaterialToolbar
      • TabLayout y TabItem
      • ViewStub
      • etiquetas <include> y <merge>
Powered by GitBook
On this page
  • DEFINICIÓN
  • USO DESDE XML
  • CONFIGURACIÓN
  • Solicitar permiso de Internet
  • Ejecutar el web Browser
  • Activar Javascript
  1. Escribiendo tu primera App
  2. Paradigmas de diseño
  3. Views
  4. Pallete Widgets

WebView

Explicación del concepto de WebView.

PreviousShapeableImageViewNextVideoView

Last updated 2 years ago

DEFINICIÓN

Hereda de:

Una View que presenta páginas web.

USO BÁSICO

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 nuestro WebView creando un WebViewClient:

webView.webViewClient = WebViewClient()

De esta manera nos queda:

MainActivity.kt
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)
    }
}

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
WebView  |  Android DevelopersAndroid Developers
Fuente: developer.android
Herencia de WebView
Logo