Nie zezwalaj aplikacjom na otwieranie linków na niestandardowych kartach Chrome (tj. Otwieraj bezpośrednio w domyślnej przeglądarce)

20

Nie tak dawno temu Google dodało nową funkcję o nazwie Chrome Custom Tabs od Chrome 45 na Androida JellyBean lub nowszym.

Co to są niestandardowe karty Chrome?

Twórcy aplikacji stają przed wyborem, gdy użytkownik stuknie adres URL, aby uruchomić przeglądarkę lub zbudować własną przeglądarkę w aplikacji za pomocą WebView.

Obie opcje stanowią wyzwanie - uruchomienie przeglądarki jest ciężkim przełącznikiem kontekstu, którego nie można dostosowywać, podczas gdy WebViews nie współużytkuje stanu z przeglądarką i nie nakłada kosztów utrzymania.

Niestandardowe karty Chrome dają aplikacjom większą kontrolę nad korzystaniem z Internetu i sprawiają, że przejścia między treściami natywnymi a treściami internetowymi są bardziej płynne bez konieczności korzystania z WebView.

Kiedy będzie to dostępne?

Począwszy od Chrome 45, niestandardowe karty Chrome są teraz ogólnie dostępne dla wszystkich użytkowników Chrome, we wszystkich obsługiwanych wersjach Androida dla Chrome (od wersji Jellybean).

prezentacja niestandardowych kart

Google zintegrowało tę funkcję z niektórymi swoimi aplikacjami (np. Google+ , wyszukiwarka Google ), a teraz aplikacje innych firm również mogą z niej korzystać (np. Twitter , Stack Exchange ).

Podczas gdy niektóre aplikacje zapewniają ustawienie umożliwiające włączenie / wyłączenie (np. Wyszukiwarka Google ), inne nie wydają się być możliwe do wyłączenia. Wiem, że nadal mogę otworzyć link w Chrome, dotykając menu przepełnienia (3 kropki w prawym górnym rogu) i wybierając Otwórz w Chrome . Byłoby jednak lepiej, gdyby można je było wyłączyć w określonych aplikacjach.

Moje pytanie brzmi: czy można wyłączyć tę funkcję, najlepiej w wybranych aplikacjach ? (przez wyłączenie, mam na myśli otwarcie linku bezpośrednio w domyślnej przeglądarce lub wyświetlenie monitu o wybranie przeglądarki)

Uwaga : jestem otwarty na wszystkie sugestie, w tym rozwiązania root, a nawet odinstalowanie Chrome w najgorszym przypadku. Preferowane są jednak bardziej praktyczne odpowiedzi.

Andrew T.
źródło

Odpowiedzi:

8

Strona pomocy Niestandardowe karty mówi:

Co się stanie, jeśli użytkownik nie zainstaluje najnowszej wersji Chrome?

Niestandardowe karty używają ACTION_VIEWzamiaru z kluczowymi dodatkami, aby dostosować interfejs użytkownika. Oznacza to, że domyślnie strona otworzy się w przeglądarce systemowej lub domyślnej przeglądarce użytkownika.

Jeśli użytkownik ma zainstalowaną Chrome i jest to domyślna przeglądarka, automatycznie pobierze EXTRASi przedstawi dostosowany interfejs użytkownika. Możliwe jest również, że inna przeglądarka użyje dodatków Intent, aby zapewnić podobny dostosowany interfejs.

Oznacza to, że jeśli ustawisz inną przeglądarkę jako domyślną (można to zrobić poprzez Ustawienia> Aplikacje> Menu koła zębatego> Domyślne aplikacje ), każda aplikacja próbująca otworzyć kartę niestandardową otworzy link w tej przeglądarce.

Aktualizacja: oznacza to również, że można napisać aplikację „menedżera”, która przedstawia się jako przeglądarka (obsługuje ACTION_VIEWzamiar), a po otrzymaniu tego zamiaru sprawdza, czy ma ona opcję Niestandardowe karty EXTRAS, i w zależności od logiki otwiera przeglądarkę wybór przy użyciu wyraźnego zamiaru (w którym nazwa pakietu aplikacji jest wyraźnie określona).

Michaił Naganow
źródło
Dzięki, zmiana domyślnej przeglądarki nieco działała na niektórych aplikacjach (np. Aplikacja Stack Exchange), ale nie działała na pozostałych (np. Google News i pogoda), nie jestem pewien z powodów ... Aplikacja menedżera to ciekawy pomysł, a ja Spróbuję eksperymentować, jeśli działa z aplikacją automatyzacji!
Andrew T.
1
To dlatego, Wiadomości i pogoda (próbował v 2.3.3.) Określa komponent wyraźnie w intencji: 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. Zły styl, ale nic nie można na to
poradzić
2

Używam Androida 7.1.1. Otwórz aplikację Google lub przeprowadź wyszukiwanie, kliknij hamburger w lewym górnym rogu i przejdź do Ustawień.

Wejdź w Konta i prywatność.

Wyłącz „otwieraj strony internetowe w aplikacji”.

To wydaje się wyłączać niestandardowe karty chrome.

Mike Cheel
źródło
3
Wyłącza to niestandardowe karty tylko w aplikacji wyszukującej (ewentualnie w innych aplikacjach Google), ale nie w całym systemie.
Keith Twombley