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

5
我希望Chrome CustomTab总是在其中打开url Chrome Custom Tab。即使有一个外部应用程序可以使用该意图。目前,用户会被提示是否要在Chrome或外部应用程序中打开。是否有可能强制意图通过Chrome进行?我知道WebView可以工作,但CustomTab具有更多的功能...

寻求帮助的问题必须包括“期望的行为”、“具体的问题或错误”以及“在问题本身中重现所需的最短代码”。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建一个最小、完整和可验证的示例 - Gustavo Morales
2个回答

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));
}

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


6
请注意,其他浏览器(如三星互联网浏览器和火狐浏览器)已经实现或正在实现对自定义标签的支持。如果将硬编码包设置为“com.android.chrome”,则将首选浏览器设置为Chrome以外的浏览器的用户将无法使用其偏好,并且您的应用程序可能会在没有安装Chrome的系统上出现故障。最佳实践说明如何创建适用于其他浏览器的代码:https://developer.chrome.com/multidevice/android/customtabs#bestpractices - andreban
2
补充@andreban的评论(因为Android/Chrome文档似乎略有变化):在这里他们解释了如何确定所有支持自定义选项卡的浏览器。 - balu

0

如果上述答案无法解决您的问题,您可以偶尔在URL前添加“m.”前缀以获取网站的移动版本。

在我的情况下,打开“https://www.wikipedia.org”总是会打开维基百科应用程序而不是自定义选项卡。一旦我将URL更改为“https://en.m.wikipedia.org”,该URL将始终在我的Chrome自定义选项卡中打开,即使用户导航到不同的页面,他们也永远不会离开我的应用程序。


这是因为维基百科有移动版本的网站,而有些应用程序/公司没有。 - Skizo-ozᴉʞS ツ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接