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

20

No hace mucho tiempo, Google agregó una nueva función llamada Chrome Custom Tabs 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 construir 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 es personalizable, mientras que las WebViews no comparten el estado con el navegador y agregan gastos generales 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 contenido nativo y web sean más fluidas sin tener que recurrir a un WebView.

¿Cuándo estará disponible?

A partir de Chrome 45, Chrome Custom Tabs ahora está generalmente disponible 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 la configuración para habilitarlo / deshabilitarlo (por ejemplo, Búsqueda de Google ), otras no parecen ser posible deshabilitarlo. Sé que aún puedo abrir el enlace en Chrome tocando el menú de desbordamiento (3 puntos en la esquina 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 desactivar esta función, preferiblemente en aplicaciones selectivas ? (por deshabilitar, me refiero a abrir el enlace directamente en el navegador predeterminado o pedirle al usuario que elija un navegador)

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

Andrew T.
fuente

Respuestas:

8

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 el navegador predeterminado del usuario.

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

Eso significa que si configura otro navegador como 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.

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

Mikhail Naganov
fuente
Gracias, cambiar el navegador predeterminado funcionó de alguna manera 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!
Andrew T.
1
Es porque Noticias y tiempo (v trataron 2.3.3.) Especifica el componente de forma explícita en el intento: 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 :(
Mikhail Naganov
2

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

Entra en Cuentas y privacidad.

Desactiva "abrir páginas web en la aplicación".

Esto parece desactivar las pestañas personalizadas de Chrome.

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