Как скрыть определенные действия из меню Chrome Custom Tab (например, закладки и кнопки загрузки)?
Я использую вкладку Chrome Custom в своем приложении, и я хотел бы иметь возможность отключить несколько кнопок, которые появляются автоматически при запуске, чтобы открыть файл на диске Google, а именно кнопку для закладки страницы и кнопку для скачать его. Я искал по всей сети без какой-либо удачи.
Ниже изображение, выделяющее, какие именно кнопки я стараюсь скрыть на своей вкладке. Кто-нибудь знает, как этого добиться?! Огромное спасибо заранее.
2 ответа
Существует "скрытый" API, который позволяет скрыть эти кнопки: добавить дополнительный ключ org.chromium.chrome.browser.customtabs.EXTRA_DISABLE_STAR_BUTTON
и значение true
Намерение, прежде чем запускать его, чтобы отключить кнопку закладки, и один с ключом org.chromium.chrome.browser.customtabs.EXTRA_DISABLE_DOWNLOAD_BUTTON
отключить кнопку загрузки.
Обратите внимание, что это не полностью отключает функциональность: все еще возможно переопределить пользовательскую вкладку в Chrome и добавить закладку или загрузить страницу там.
Также обратите внимание, что это не публичный API, поэтому он может исчезнуть в будущих версиях Chrome.
В последние годы для пользовательских вкладок мы должны использовать пакетandroidx.browser
https://developer.android.com/jetpack/androidx/releases/browser
dependencies {
...
implementation "androidx.browser:browser:1.5.0"
...
}
Чтобы использовать дополнительные функции...
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
// official way to disable share button
builder.setShareState(CustomTabsIntent.SHARE_STATE_OFF);
// official way to show website title in address bar
builder.setShowTitle(true);
CustomTabsIntent customTabsIntent = builder.build();
// unofficial way to show website title in address bar
customTabsIntent.intent.putExtra(CustomTabsIntent.EXTRA_TITLE_VISIBILITY_STATE, 1);
// unofficial (only) way to disable download button
customTabsIntent.intent.putExtra("org.chromium.chrome.browser.customtabs.EXTRA_DISABLE_DOWNLOAD_BUTTON", true);
// unofficial (only) way to disable star button
customTabsIntent.intent.putExtra("org.chromium.chrome.browser.customtabs.EXTRA_DISABLE_STAR_BUTTON", true);
customTabsIntent.launchUrl(mainActivity, Uri.parse("https://example.com"));
Что вы можете изменить, вы можете увидеть здесь https://chromium.googlesource.com/external/github.com/GoogleChrome/custom-tabs-client/+/master/customtabs/src/android/support/customtabs/CustomTabsIntent.java , но почти все константы вы можете официально изменить с помощью документа здесь:
- https://developer.android.com/reference/androidx/browser/customtabs/CustomTabsIntent.Builder
- https://developer.android.com/reference/androidx/browser/customtabs/CustomTabsIntent
Более интересно то, что вы также можете изменить в исходном коде Chromium здесь: https://chromium.googlesource.com/chromium/src/+/refs/tags/103.0.5052.1/chrome/android/java/src/org/chromium . /chrome/browser/customtabs/CustomTabIntentDataProvider.java ... и просто здесь EXTRA_DISABLE_DOWNLOAD_BUTTON и EXTRA_DISABLE_STAR_BUTTON
Посмотреть результат без кнопок загрузки и звездочки...