Как скрыть определенные действия из меню 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 , но почти все константы вы можете официально изменить с помощью документа здесь:

Более интересно то, что вы также можете изменить в исходном коде 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

Посмотреть результат без кнопок загрузки и звездочки...

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