24 votes

Empêcher les applications d'ouvrir des liens dans les onglets personnalisés de Chrome (c'est-à-dire les ouvrir directement dans le navigateur par défaut)

Il y a peu de temps, Google a ajouté une nouvelle fonctionnalité appelée Onglets personnalisés de Chrome depuis Chrome 45 sur Android JellyBean ou ultérieur.

Que sont les onglets personnalisés de Chrome ?

Les développeurs d'applications sont confrontés à un choix lorsqu'un utilisateur tape sur une URL : soit ils lancent un navigateur, soit ils créent leur propre navigateur dans l'application à l'aide de WebViews.

Les deux options présentent des défis : le lancement du navigateur est un changement de contexte lourd qui n'est pas personnalisable, tandis que les WebViews ne partagent pas d'état avec le navigateur et ajoutent des frais de maintenance.

Les onglets personnalisés de Chrome donnent aux applications plus de contrôle sur leur expérience web, et rendent les transitions entre le contenu natif et le contenu web plus transparentes sans avoir à recourir à un WebView.

Quand sera-t-il disponible ?

Depuis Chrome 45, les onglets personnalisés de Chrome sont désormais disponibles pour tous les utilisateurs de Chrome, sur toutes les versions Android prises en charge par Chrome (à partir de Jellybean).

custom tabs demonstration

Google a intégré cette fonctionnalité à certaines de ses applications (par exemple Google+ , Recherche Google ) et maintenant, des applications tierces peuvent également l'utiliser (par exemple, le site Web de la Commission européenne). Twitter , Stack Exchange ).

Bien que certaines applications offrent la possibilité de l'activer ou de la désactiver (par ex. Recherche Google ), d'autres ne semblent pas pouvoir le désactiver. Je sais que je peux toujours ouvrir le lien dans Chrome en appuyant sur le menu de débordement (3 points en haut à droite) et en sélectionnant Ouvrir dans Chrome . Cependant, il serait préférable de pouvoir la désactiver sur des applications spécifiques.

Ma question est donc la suivante : est-il possible de désactiver cette fonction ? de préférence sur des applications sélectives ? (par désactiver, je veux dire ouvrir le lien directement dans le navigateur par défaut, ou demander à l'utilisateur de choisir un navigateur)

Note : Je suis ouvert à toutes les suggestions, y compris les solutions Root, ou même la désinstallation de Chrome dans le pire des cas. Cependant, les réponses plus pratiques sont préférées.

0 votes

10voto

Mikhail Naganov Points 586

La page d'aide des onglets personnalisés indique :

Que se passe-t-il si l'utilisateur ne dispose pas d'une version récente de Chrome ?

Les onglets personnalisés utilisent un ACTION_VIEW Intent avec des extras clés pour personnaliser l'interface utilisateur. Cela signifie que, par défaut, la page s'ouvrira dans le navigateur du système, ou dans le navigateur par défaut de l'utilisateur.

Si Chrome est installé sur l'ordinateur de l'utilisateur et qu'il s'agit du navigateur par défaut, il récupère automatiquement l'adresse de l'utilisateur. EXTRAS et présenter une interface utilisateur personnalisée. Il est également possible pour un autre navigateur d'utiliser les extras de l'Intent pour fournir une interface personnalisée similaire.

Cela signifie que si vous faites d'un autre navigateur le navigateur par défaut (cela peut être fait via Réglages > Apps > Menu Cog > Apps par défaut ), toute application essayant d'ouvrir un onglet personnalisé ouvrira le lien dans ce navigateur à la place.

Mise à jour : Cela signifie également qu'il est possible d'écrire une application "gestionnaire" qui se présente comme un navigateur (qui gère ACTION_VIEW ) et, lorsqu'il reçoit cette intention, il vérifie s'il dispose d'informations relatives aux onglets personnalisés. EXTRAS et, selon une certaine logique, ouvre un navigateur de votre choix en utilisant un intention explicite (où le nom du paquet d'applications souhaité est explicitement spécifié).

0 votes

Merci, le changement de navigateur par défaut a quelque peu fonctionné sur certaines applications (par exemple l'application Stack Exchange), mais n'a pas fonctionné sur le reste (par exemple Google News & Weather), je ne suis pas sûr des raisons... L'application de gestion est une idée intéressante et j'essaierai d'expérimenter si elle fonctionne avec l'application d'automatisation !

1 votes

C'est parce que News & Weather (essayé v. 2.3.3) spécifie le composant explicitement dans l'intention : 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 . Mauvais style, mais il n'y a rien que vous puissiez faire à ce sujet :(

3voto

Mike Cheel Points 121

J'utilise Android 7.1.1. Ouvrez l'application Google ou faites une recherche, cliquez sur le hamburger en haut à gauche et allez dans Paramètres.

Allez dans Comptes et vie privée.

Désactivez l'option "Ouvrir les pages Web dans l'application".

Cela semble désactiver les onglets personnalisés de Chrome.

3 votes

Cela désactive les onglets personnalisés dans l'application de recherche uniquement (éventuellement dans d'autres applications Google), mais pas dans l'ensemble du système.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X