Intent que abre una URL en Android

Intent que abre una URL en Android

Realizaremos un intent que abre una URL escrita por el usuario en una caja de texto en el navegador predeterminado por el sistema.

Intent que abre una URL

Un intent que abre una URL en Android es un intent implícito. Un intent implícito es una acción que invoca cualquier aplicación que el dispositivo puede utilizar para realizar una determinada función. Por ejemplo, no es necesario crear un navegador para abrir una URL, en vista de que Android tiene ya una aplicación que hace esa función. En vez de eso, podemos enviar la orden de abrir una URL y pasarle la URL que deseamos abrir.

Los siguientes pasos se realizan sobre un proyecto que empezamos en un artículo anterior.

Paso 1. Vamos a agregar un EditText y un ImageButton a nuestra aplicación

    <EditText
        android:id="@+id/editTextWeb"
        android:layout_width="217dp"
        android:layout_height="47dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="48dp"
        android:ems="10"
        android:inputType="text"
        android:text=""
        app:layout_constraintEnd_toStartOf="@+id/imageButtonWeb"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/imageButtonWeb" />

    <ImageButton
        android:id="@+id/imageButtonWeb"
        android:layout_width="30dp"
        android:layout_height="45dp"
        android:layout_marginBottom="362dp"
        android:layout_marginEnd="54dp"
        android:background="@android:color/transparent"
        android:src="@drawable/eye"
        app:layout_constraintBottom_toTopOf="@+id/imageButtonCamera"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/editTextWeb"
        app:layout_constraintTop_toBottomOf="@+id/imageButtonPhone" />

Notamos que el EditText utiliza el id editTextWeb, y es de tipo Text.

El ImageButton tiene un id llamado imageButtonWeb y está asociado a una imagen llamada eye, misma que está en la carpeta drawable bajo el nombre eye.png.

Nuestro diseño se verá así:

Intent que abre URL

Interfaz para el Intent que abre URL

Paso 2. Crear objetos y asociarlos

En nuestro código Java (ThirdActivity.java), creamos objetos que asociaremos a los elementos XML que acabamos de añadir.

private EditText editTextWeb;
private ImageButton imgBtnWeb;

Y los asociamos:

editTextWeb = (EditText) findViewById(R.id.editTextWeb);
imgBtnWeb = (ImageButton) findViewById(R.id.imageButtonWeb);

Paso 3. Escribimos el evento onClick del ImageButton

El código relacionado al evento clic del ImageButton y que abre una URL es el siguiente:

imgBtnWeb.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        String url = editTextWeb.getText().toString();
        if (url != null && !url.isEmpty()){
            Intent intentWeb = new Intent();
            intentWeb.setAction(Intent.ACTION_VIEW);
            intentWeb.setData(Uri.parse("http://"+url));
            startActivity(intentWeb);
        }
     }
});

Este código extrae el contenido de la URL (String url = editTextWeb.getText().toString();), verifica que el usuario haya escrito algo en él (if (url != null && !url.isEmpty())), crea un Intent, le pasa la URL escrita, e inicia el Intent.

Una Acción (Action) es un String que especifica la acción que se va a realizar. ACTION_VIEW es una acción común que indica a la activity que tenemos información para mostrar al usuario, en nuestro caso una  dirección web.

Si deseas ver el resultado está aquí.

 

 

Referencias

  1. Android.com (2018). Intents y filtros de intents. Disponible en [https://developer.android.com/guide/components/intents-filters?hl=es-419]
¿Qué te pareció este artículo?
  • Poco informativo 
  • Regular 
  • Excelente 
  • No era lo que buscaba 
  • Interesante 
(Visto 2.786 veces)
Facebooktwitterlinkedinmail

Tu comentario

opiniones

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *







16 + = 24