24 votos

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

No hace mucho, Google añadió 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?

Cuando un usuario pulsa una URL, los desarrolladores de aplicaciones tienen que elegir entre iniciar un navegador o crear su propio navegador dentro de la aplicación mediante WebViews.

Ambas opciones suponen un reto: iniciar el navegador es un cambio de contexto pesado que no se puede personalizar, mientras que las WebViews no comparten estado con el navegador y añaden sobrecarga de mantenimiento.

Las pestañas personalizadas de Chrome dan 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 una WebView.

¿Cuándo estará disponible?

A partir de Chrome 45, Chrome Custom Tabs ya está disponible de forma general para todos los usuarios de Chrome, en todas las versiones de Android compatibles con Chrome (Jellybean en adelante).

custom tabs demonstration

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

Aunque algunas aplicaciones ofrecen la posibilidad de activarlo o desactivarlo (p. ej. Búsqueda en Google ), otros no parece posible desactivar esto. Sé que todavía puedo abrir el enlace en Chrome tocando el menú de desbordamiento (3 puntos en la parte superior derecha) y seleccione Abrir en Chrome . Sin embargo, sería preferible que se pudiera desactivar en aplicaciones específicas.

Así que mi pregunta es: ¿es posible desactivar esta función? preferiblemente en aplicaciones selectivas ? (por desactivar, me refiero a abrir el enlace directamente en el navegador por defecto, o pedir al usuario que elija un navegador)

Nota : Estoy abierto a todas las sugerencias, incluyendo soluciones Root, o incluso desinstalar Chrome en el peor de los casos. Sin embargo, se prefieren respuestas más prácticas.

0 votos

10voto

Mikhail Naganov Puntos 251

La página de ayuda de las pestañas personalizadas dice:

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

Las pestañas personalizadas utilizan un ACTION_VIEW Intent 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 instalado Chrome y es el navegador por defecto, recogerá automáticamente el EXTRAS y presentar una interfaz de usuario personalizada. También es posible que otro navegador utilice los extras de Intent para proporcionar una interfaz personalizada similar.

Es decir, si convierte otro navegador en el predeterminado (puede hacerlo mediante Ajustes > Aplicaciones > Menú contextual > Aplicaciones predeterminadas ), cualquier aplicación que intente abrir una pestaña personalizada abrirá el enlace en ese navegador en su lugar.

Actualización: Esto también significa que es posible escribir una aplicación "gestora" que se presente como un navegador (maneje ACTION_VIEW intent), y al recibir esta intent comprueba si tiene pestañas personalizadas relacionadas con EXTRAS y en función de cierta lógica abre un navegador de su elección utilizando un intención explícita (donde se especifica explícitamente el nombre del paquete de aplicaciones deseado).

0 votos

Gracias, cambiar el navegador por defecto funcionó en algunas aplicaciones (por ejemplo, Stack Exchange app), pero no funcionó en el resto (por ejemplo, Google News & Weather), no estoy seguro de las razones... ¡La aplicación de gestión es una idea interesante y voy a tratar de experimentar si funciona con la aplicación de automatización!

1 votos

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.ChromeTab‌​bedActivity (has extras)} from uid 10041 on display 0 . Mal estilo, pero no se puede hacer nada :(

3voto

Yuval Weissler Puntos 65

Estoy usando Android 7.1.1. Abre la aplicación Google o haz una búsqueda, pulsa en la hamburguesa de arriba a la izquierda y entra en Ajustes.

Entra en Cuentas y privacidad.

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

Esto parece desactivar las pestañas personalizadas de Chrome.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X