Можно ли заставить Chrome CustomTabs не открывать внешнее приложение?

Я хочу, чтобы Chrome CustomTab всегда открывал URL в Chrome CustomTab. Даже если есть внешнее приложение, к которому может обратиться намерение. Прямо сейчас пользователю предлагается открыть его в Chrome или во внешнем приложении. Можно ли заставить намерение пройти через Chrome? Я знаю, что WebView будет работать, но CustomTab обладает большей функциональностью...

1 ответ

Решение

Этот вопрос мне не понятен. Я думаю, вы хотели сказать, что хотите всегда открывать URL-адрес в пользовательской вкладке Chrome, не отображая диалоговое окно выбора Chrome или любого внешнего приложения.

Если я понимаю, что все в порядке, то в случае браузера Chrome вы должны установить CustomTabIntent с пакетом браузера Chrome перед запуском URL.

private void launchURL(String url) {
    CustomTabsIntent.Builder builderCustomTabs = new CustomTabsIntent.Builder();
    CustomTabsIntent intentCustomTabs = builderCustomTabs.build();
    intentCustomTabs.intent.setPackage("com.android.chrome");
    intentCustomTabs.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intentCustomTabs.launchUrl(this, Uri.parse(url));
}

Для получения подробной информации, проверьте: пользовательские вкладки Chrome запрашивает выбор нескольких браузеров

Если приведенный выше ответ не решает вашу проблему, вы можете иногда добавлять "m". префикс к вашим URL-адресам, чтобы получить мобильную версию веб-сайта.

В моей ситуации открытие " https://www.wikipedia.org/" всегда открывало бы приложение Википедия, а не настраиваемую вкладку. Как только я изменил URL-адрес на " https://en.m.wikipedia.org/", этот URL-адрес всегда будет открываться на моей вкладке Chrome Custom, и даже если пользователь переходит на разные страницы, он никогда не покидает мое приложение.

Другие вопросы по тегам