Mientras pruebas tu nueva aplicación Android, seguramente quieras probar su WebView. Sin embargo, es posible que notes un error que impide que una página del navegador se renderice dentro de la aplicación. Esto puede afectar negativamente a la Experiencia de Usuario (UX) de tu aplicación.

Afortunadamente, puedes solucionar fácilmente el error ERR_UNKNOWN_URL_SCHEME. En el front end, puede que tengas que desactivar las extensiones de Chrome o simplemente borrar la caché. Como alternativa, los desarrolladores pueden desactivar las URLs no estándar en la programación de la aplicación.

En este post, explicaremos qué es el error ERR_UNKNOWN_URL_SCHEME y cuáles son sus causas. A continuación, te mostraremos cómo solucionarlo tanto en el front end como en el back end. ¡Empecemos ya!

¿Qué Es el Error ERR_UNKNOWN_URL_SCHEME?

Para entender el error ERR_UNKNOWN_URL_SCHEME, hablemos primero de las aplicaciones nativas. En pocas palabras, una aplicación nativa se instala en un dispositivo móvil y está diseñada para un sistema operativo concreto.

Puedes encontrar aplicaciones nativas en la App Store o en Google Play Store:

Captura de pantalla de Google Play Store
Google Play Store

Actualmente, Android controla el 72% del mercado de sistemas operativos móviles. Por esta razón, es posible que quieras desarrollar tu aplicación nativa para Google Play Store. Para ello, utilizarás Android Studio, que es el Entorno de Desarrollo Integrado (IDE) de Android:

Sitio web de Android Studio
Android Studio

Mientras desarrollas tu aplicación, es importante permitir a los usuarios ver el contenido incrustado del navegador web. Si los usuarios no tienen que ir y venir del navegador a la aplicación, la experiencia de usuario será más consistente.

Para añadir esta función a tu aplicación, utilizarás WebView. Esta clase especial muestra páginas web directamente desde una aplicación nativa. Aunque el navegador no tendrá funciones extensas como una barra de búsqueda o controles de navegación, WebView mostrará correctamente una página web.

Sin embargo, tu aplicación nativa también podría producir un error ERR_UNKNOWN_URL_SCHEME. En este caso, el sitio web solicitado tiene un esquema de URL que el dispositivo móvil no puede reconocer.

El ERR_UNKNOWN_URL_SCHEME suele ser un error de Chromium. Ha sido un problema importante desde Chrome 40. Sin embargo, puede tener diferentes causas.

¿Qué Causa el Error ERR_UNKOWN_URL_SCHEME?

Aunque WebView puede ser útil en aplicaciones nativas, sólo está equipada para procesar unos pocos esquemas de URL diferentes. Un esquema de URL proporciona información sobre cómo debe interpretarse la URL.

Los esquemas de URL estándar son ‘https://’ y ‘http://’. Aquí tienes algunos esquemas de URL que pueden causar el ERR_UNKNOWN_URL_SCHEME:

  • mailto://
  • whatsapp://
  • file://
  • telnet://
  • intent://
  • market://
  • app://
  • mail://
  • buy://

Si eres desarrollador de aplicaciones, tendrás que utilizar una programación de URL específica para evitar que estos esquemas de URL provoquen errores. De lo contrario, los usuarios no podrán utilizar WebView en tu aplicación nativa.

Alternativamente, puede producirse el error ERR_UNKNOWN_URL_SCHEME cuando un usuario intenta abrir una URL redirigida. También puedes ver este mensaje después de utilizar OAuth con una tarjeta personalizada de Chrome.

Cómo Solucionar el Error ERR_UNKOWN_URL_SCHEME (8 Métodos)

Para los desarrolladores, el error ERR_UNKNOWN_URL_SCHEME significa que la WebView de tu aplicación no está mostrando eficazmente las páginas del navegador web. Esto impedirá que los usuarios vean el contenido correcto.

Tanto si eres un desarrollador como un usuario front-end, hay algunas formas de solucionar el problema. ¡Aquí tienes ocho soluciones!

1. Desactiva las Extensiones de Chrome

Muchos errores de Chrome pueden resolverse solucionando los problemas de las extensiones del navegador. Para ello, dirígete a Más herramientas > Extensiones. También puedes buscar «chrome://extensions/»:

Abrir las extensiones de Chrome
Abrir las extensiones de Chrome

En esta página, verás una lista de las extensiones de Chrome que tienes instaladas. Primero, desactívalas todas utilizando el interruptor de la esquina inferior derecha:

Desactivar extensiones de Chrome
Desactivar extensiones de Chrome

A continuación, comprueba si el problema se ha resuelto. Si es así, sabrás que había un problema con una de las extensiones.

Para averiguar qué extensión estaba causando el error ERR_UNKNOWN_URL_SCHEME, reactívalas una a una. Después de activar una extensión, comprueba si el problema reaparece. Cuando lo haga, elimina esa extensión por completo.

2. Limpia la Caché y las Cookies de Chrome

Mientras navegas por Internet, tu navegador guardará los datos de los sitios web en la caché. Esto garantizará que tu segunda visita se procese mucho más rápido. Sin embargo, estos datos almacenados en caché pueden corromperse fácilmente.

Si la primera solución no ha resuelto el error ERR_UNKNOWN_URL_SCHEME, puede que necesites borrar la caché de tu navegador. En Google Chrome, ve a Más herramientas > Borrar Datos de Navegación:

Abrir datos de navegación
Abrir datos de navegación

A continuación, asegúrate de seleccionar Imágenes y archivos almacenados en caché. Si quieres, también puedes borrar el historial de navegación, las cookies y otros datos de sitios guardados:

Borrar caché de Chrome
Borrar caché de Chrome

Después, intenta volver a cargar la página a la que intentabas acceder. Si se visualiza sin errores, ¡has solucionado el problema!

3. Desactiva la Aceleración por Hardware

La aceleración por hardware se produce cuando un navegador utiliza el hardware de tu dispositivo para aumentar la eficiencia. En Google Chrome, la Unidad de Procesamiento Gráfico (GPU) de tu dispositivo empezará a procesar tareas con gráficos pesados, como los juegos o la reproducción de vídeos.

La mayoría de las veces, la aceleración por hardware permite a Chrome realizar tareas más complejas de las que su software puede soportar. Sin embargo, esta función también puede provocar retrasos, bloqueos e incluso cuelgues.

Por lo tanto, puede que quieras desactivar la aceleración por hardware. Primero, abre la página de Configuración de Chrome. A continuación, haz clic en la pestaña Sistema:

Desactivar la aceleración por hardware en Chrome
Desactivar aceleración de hardware

Por último, utiliza el conmutador para desactivar la aceleración por hardware. Se te pedirá que reinicies Chrome con esta nueva configuración.

4. Desactiva el Cortafuegos

Otro motivo del error ERR_UNKNOWN_URL_SCHEME es un cortafuegos mal configurado. Para comprobar si éste es el caso, puedes desactivar temporalmente el cortafuegos de tu dispositivo.

Para los usuarios de Mac, haz clic en el icono de la manzana. A continuación, selecciona Configuración del sistema:

Configuración del Sistema para Mac
Configuración del Sistema Mac

En la lista de pestañas, pulsa Red. A continuación, busca la opción Cortafuegos y desactívala:

Desactivar el cortafuegos del Mac
Desactivar el cortafuegos del Mac

Si tienes un ordenador Windows, haz clic en Inicio y abre Configuración. A continuación, ve a Privacidad y Seguridad > Seguridad de Windows > Cortafuegos y protección de red:

Configuración del cortafuegos y de la protección de red en Windows.
Configuración del cortafuegos y protección de red nn Windows

Ahora tendrás que seleccionar Red de dominio, Red privada o Red pública. Una vez hecho esto, busca la configuración del Cortafuegos de Microsoft Defender y desactívala:

Desactivar el Cortafuegos de Microsoft Defender
Desactivar el Cortafuegos de Microsoft Defender

Aparecerá una ventana emergente de seguridad pidiéndote que confirmes tu elección. Pulsa Aceptar para guardar el cambio.

5. Crea un Nuevo Perfil de Usuario de Chrome

Si los métodos anteriores no han solucionado el error ERR_UNKNOWN_URL_SCHEME, puedes probar a crear un perfil de usuario de Chrome completamente nuevo. A continuación, comprueba si puedes visitar la página sin problemas.

Afortunadamente, Google Chrome facilita la personalización de los perfiles. En la esquina superior derecha, haz clic en tu foto de perfil. En la parte inferior de la ventana emergente, pulsa Añadir:

Crear un nuevo perfil de Chrome
Crear un nuevo perfil de Chrome

Esto te permitirá configurar un nuevo perfil. Puedes iniciar sesión con una cuenta de Chrome existente o pulsar Continuar sin una cuenta:

Configurar perfil de Chrome
Configurar perfil de Chrome

Antes de empezar a navegar, dale un nombre al perfil. Además, puedes personalizar la combinación de colores:

Puedes personalizar fácilmente tu perfil de Chrome
Personalizar el perfil de Chrome

Después de esto, tendrás un nuevo perfil de Chrome independiente de tus otras cuentas. Mientras utilizas este perfil, intenta cargar la página web de destino. Si el problema persiste, es buena idea que te pongas en contacto con el desarrollador de la aplicación, que resolverá el problema por ti.

6. Abrir la URL en una Ventana Nueva

Hasta ahora, hemos explicado cómo los usuarios pueden resolver potencialmente el error ERR_UNKNOWN_URL_SCHEME en un navegador. Si eres desarrollador, necesitarás saber cómo solucionar este problema para que tu aplicación tenga una WebView sin errores.

Una solución fácil consiste en editar el código href de tu URL. Incluyendo un atributo target en el HTML de tu aplicación, podrás especificar cómo debe abrirse el navegador.

Por ejemplo, puedes añadir el código HTML target=»_blank». Esto abrirá la WebView en una nueva ventana. Aquí tienes un ejemplo:

<a href=»https://www.w3schools.com» target=»_blank»>Visita W3Schools</a>

Aunque ésta puede ser una solución eficaz a corto plazo, puede afectar negativamente a la Experiencia de Usuario (UX) de tu aplicación. En el desarrollo web, es una buena idea evitar abrir nuevas ventanas.

El fragmento de código anterior eliminará el botón Atrás, lo que podría confundir a los usuarios cuando quieran volver a la página anterior.

7. Añade una Nuevo Intent

Como desarrollador de Android, necesitarás utilizar intents. Esencialmente, un intent describe la acción que quieres que realice la aplicación. Si necesitas corregir un error de esquema de URL, podrías considerar incluir un intent para que el contenido se cargue en una app externa.

Por ejemplo, puedes querer que el esquema URL «maps://» abra la aplicación de mapas por defecto de un usuario. Por otro lado, «mailto://» puede abrir la aplicación de correo.

Para añadir un nuevo intent, utilizarás una sentencia IF. Esto indicará al dispositivo que abra esquemas especiales en una app externa relevante. Sin embargo, los esquemas de URL estándar como «https://» o «http://» se abrirán normalmente.

Así es como se vería esta intención en acción:

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

if (url == null || url.startsWith("http://") || url.startsWith("https://")) {

return false;

}

try {

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

view.getContext().startActivity(intent);

return true;

} catch (Exception e) {

Log.i(TAG, "shouldOverrideUrlLoading Exception:" + e);

return true;

}

}

Sin embargo, puedes añadir un intent personalizado para aplicaciones externas específicas. Si quieres enviar a los usuarios a su Whatsapp instalado, así es como podría cambiar la anulación de la URL:

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

if (url.startsWith("whatsapp://")) {

webview.stopLoading();

try {

Intent whatsappIntent = new Intent(Intent.ACTION_SEND);

whatsappIntent.setType("text/plain");

whatsappIntent.setPackage("com.whatsapp");

whatsappIntent.putExtra(Intent.EXTRA_TEXT, webview.getUrl() + " - Shared from webview ");

startActivity(whatsappIntent);

} catch (android.content.ActivityNotFoundException ex) {

String MakeShortText = "Whatsapp has not been installed";

Toast.makeText(WebactivityTab1.this, MakeShortText, Toast.LENGTH_SHORT).show();

}

};

};

Este código permitirá que tu app abra Whatsapp en el dispositivo de un usuario. Si no está instalado, aparecerá un mensaje que indicará a los usuarios que «Whatsapp no se ha instalado».

8. Desactiva los Esquemas de URL No Estándar

En lugar de utilizar intents, también puedes desactivar completamente los esquemas de URL no estándar. Esto evitará que utilices esquemas de URL distintos de «http://» y «https://».

A continuación te explicamos cómo implementarlo en HTML:

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

if (url.startsWith("http") || url.startsWith("https")) {

return true;

}else {

webview.stopLoading();

webview.goBack();

Toast.makeText(MainActivity.this, "Error: Unknown link type", Toast.LENGTH_SHORT).show();

}

return false;

}

Si un usuario hace clic en un enlace que utiliza un esquema personalizado, aparecerá un mensaje que dirá «Error: Tipo de enlace desconocido». Como la WebView de tu aplicación no admite esquemas personalizados, puedes evitar por completo el error ERR_UNKNOWN_URL_SCHEME.

Resumen

Cuando la gente utilice tu aplicación nativa, querrá que los enlaces externos se abran dentro de la misma aplicación. Si el sitio web solicitado no tiene un esquema de URL conocido, el dispositivo móvil del usuario devolverá un error ERR_UNKNOWN_URL_SCHEME.

En el front end, puedes solucionar este problema en los navegadores Chrome desactivando la aceleración por hardware o creando un perfil de usuario completamente nuevo. Sin embargo, en la mayoría de los casos, el desarrollador de la aplicación tendrá que resolver este error. Como desarrollador, podrás solucionar el error ERR_UNKNOWN_URL_SCHEME añadiendo un nuevo intent o abriendo la URL en una nueva ventana.

Mientras desarrollas tu aplicación, necesitarás un alojamiento fiable y estable. Nuestro alojamiento de aplicaciones cuenta con 25 centros de datos y asistencia experta por chat 24 horas al día, 7 días a la semana, ¡para que puedas centrarte únicamente en el desarrollo!