Evite que las aplicaciones abran enlaces en las pestañas personalizadas de Chrome (es decir, abra directamente en el navegador predeterminado)

No hace mucho, Google agregó una nueva función llamada Pestañas personalizadas de Chrome desde Chrome 45 en Android JellyBean o posterior.

¿Qué son las pestañas personalizadas de Chrome?

Los desarrolladores de aplicaciones se enfrentan a una elección cuando un usuario toca una URL para iniciar un navegador o crear su propio navegador en la aplicación utilizando WebViews.

Ambas opciones presentan desafíos: iniciar el navegador es un cambio de contexto pesado que no se puede personalizar, mientras que WebViews no comparte el estado con el navegador y agrega una sobrecarga de mantenimiento.

Las pestañas personalizadas de Chrome brindan a las aplicaciones más control sobre su experiencia web y hacen que las transiciones entre el contenido nativo y el web sean más fluidas sin tener que recurrir a WebView.

¿Cuándo estará disponible?

A partir de Chrome 45, las pestañas personalizadas de Chrome ahora están disponibles en general para todos los usuarios de Chrome, en todas las versiones de Android compatibles con Chrome (Jellybean en adelante).

demostración de pestañas personalizadas

Google ha integrado esta función en algunas de sus aplicaciones (por ejemplo , Google+ , Búsqueda de Google ) y ahora, las aplicaciones de terceros también pueden usarla (por ejemplo , Twitter , Stack Exchange ).

Si bien algunas aplicaciones proporcionan una configuración para habilitarlo/deshabilitarlo (por ejemplo , la Búsqueda de Google ), parece que otras no pueden deshabilitarlo. Sé que todavía puedo abrir el enlace en Chrome tocando el menú adicional (3 puntos en la parte superior derecha) y seleccionando Abrir en Chrome . Sin embargo, sería preferible si se puede deshabilitar en aplicaciones específicas.

Entonces, mi pregunta es: ¿es posible deshabilitar esta función, preferiblemente en aplicaciones selectivas ? (al deshabilitar, me refiero a abrir el enlace directamente en el navegador predeterminado o solicitar al usuario que elija un navegador)

Nota : estoy abierto a todas las sugerencias, incluidas las soluciones raíz o incluso la desinstalación de Chrome en el peor de los casos. Sin embargo, se prefieren respuestas más prácticas.

Respuestas (2)

La página de ayuda de Pestañas personalizadas dice:

¿Qué sucede si el usuario no tiene instalada una versión reciente de Chrome?

Las pestañas personalizadas utilizan una ACTION_VIEWintención con extras clave para personalizar la interfaz de usuario. Esto significa que, por defecto, la página se abrirá en el navegador del sistema o en el navegador predeterminado del usuario.

Si el usuario tiene Chrome instalado y es el navegador predeterminado, automáticamente seleccionará EXTRASy presentará una interfaz de usuario personalizada. También es posible que otro navegador use los extras de Intent para proporcionar una interfaz personalizada similar.

Eso significa que, si hace que otro navegador sea el predeterminado (esto se puede hacer a través de Configuración> Aplicaciones> Menú Cog> Aplicaciones predeterminadas ), cualquier aplicación que intente abrir una pestaña personalizada abrirá el enlace en ese navegador en su lugar.

Actualización: eso también significa que es posible escribir una aplicación de "administrador" que se presenta como un navegador (maneja la ACTION_VIEWintención), y al recibir esta intención, verifica si tiene pestañas personalizadas relacionadas EXTRASy, dependiendo de alguna lógica, abre un navegador de su elección usando una intención explícita (donde el nombre del paquete de la aplicación deseada se especifica explícitamente).

Gracias, cambiar el navegador predeterminado funcionó un poco en algunas aplicaciones (por ejemplo, la aplicación Stack Exchange), pero no funcionó en el resto (por ejemplo, Google News & Weather), no estoy seguro por las razones... La aplicación del administrador es una idea interesante y yo ¡Intentaré experimentar si funciona con la aplicación de automatización!
Es porque News & Weather (probado v. 2.3.3) especifica el componente explícitamente en la intención: START u0 {act=android.intent.action.VIEW dat=http://news.google.com/... flg=0x14002000 cmp=com.android.chrome/org.chromium.chrome.browser.ChromeTabbedActivity (has extras)} from uid 10041 on display 0. Mal estilo, pero no hay nada que puedas hacer al respecto :(

Estoy usando Android 7.1.1. Abra la aplicación de Google o realice una búsqueda, haga clic en la hamburguesa en la parte superior izquierda y vaya a Configuración.

Entra en Cuentas y privacidad.

Desactive 'abrir páginas web en la aplicación'.

Esto parece desactivar las pestañas personalizadas de Chrome.

Esto deshabilita las pestañas personalizadas solo en la aplicación de búsqueda (posiblemente en otras aplicaciones de Google), pero no en todo el sistema.