是否可以使 Chrome CustomTabs 意图不打开外部应用程序?

Mic*_*ael 5 android google-chrome android-intent android-customtabs

我希望 Chrome CustomTab 始终打开 Chrome CustomTab 中的网址。即使有意图可以转到的外部应用程序。现在,系统会提示用户是否要在 Chrome 或外部应用程序中打开。是否可以强制意图通过 Chrome?我知道 WebView 可以工作,但 CustomTab 有更多功能......

Fan*_*ock 5

这个问题我不清楚。我想您想说的是,您希望始终在 Chrome 自定义选项卡中打开 url,而不显示 Chrome 或任何外部应用程序的选择对话框。

如果我的理解是好的,那么对于Chrome 浏览器,您应该在启动 url 之前使用 Chrome 浏览器的包设置 CustomTabIntent。

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));
}
Run Code Online (Sandbox Code Playgroud)

详情请查看:自定义chrome标签要求选择多个浏览器

  • 请注意,其他浏览器(例如 Samsung Internet Browser 和 Firefox)已经实现或正在实现对自定义选项卡的支持。通过将硬编码包设置为“com.android.chrome”,将首选浏览器设置为 Chrome 以外的浏览器的用户将不会遵守其首选项,并且您的应用程序可能会在未安装 Chrome 的系统上崩溃。最佳实践解释了如何创建与其他浏览器兼容的代码:https://developer.chrome.com/multidevice/android/customtabs#bestpractices (6认同)
  • 添加到 @andreban 的评论(因为 Android/Chrome 文档似乎略有变化):[此处](https://developer.chrome.com/docs/android/custom-tabs/integration-guide/#how-can -i-check-whether-the-android-device-has-a-browser-that-supports-custom-tab)他们解释了如何确定支持自定义选项卡的所有浏览器。 (2认同)