当前位置: 首页 > 知识库问答 >
问题:

如何检查Chrome是否支持Chrome自定义选项卡?

夏景胜
2023-03-14

我有一个活动,将一个外部url加载到我应用程序内的webview中。我想使用Chrome自定义标签,当它可用,但我支持的设备可能没有一个版本的Chrome支持他们。

它说,如果绑定成功,自定义选项卡可以安全使用。有没有一个简单的方法绑定来测试这个?

我假设是这样的:

Intent serviceIntent = new Intent("android.support.customtabs.action.CustomTabsService");
serviceIntent.setPackage("com.android.chrome");
boolean customTabsSupported = bindService(serviceIntent, new CustomTabsServiceConnection() {
            @Override
            public void onCustomTabsServiceConnected(final ComponentName componentName, final CustomTabsClient customTabsClient) {}

            @Override
            public void onServiceDisconnected(final ComponentName name) {}
        },
        Context.BIND_AUTO_CREATE | Context.BIND_WAIVE_PRIORITY);

if (customTabsSupported) {
    // is supported
}

共有1个答案

巫马心水
2023-03-14

您可以使用PackageManager检查是否支持自定义选项卡,而不是绑定和解除绑定服务。

  private static final String SERVICE_ACTION = "android.support.customtabs.action.CustomTabsService";
    private static final String CHROME_PACKAGE = "com.android.chrome";

    private static boolean isChromeCustomTabsSupported(@NonNull final Context context) {
        Intent serviceIntent = new Intent(SERVICE_ACTION);
        serviceIntent.setPackage(CHROME_PACKAGE);
        List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentServices(serviceIntent, 0);
        return !(resolveInfos == null || resolveInfos.isEmpty());
    }

请注意,将来其他浏览器可能会支持自定义选项卡,因此您可能希望修改该选项卡以支持这种情况。

 类似资料:
  • 问题内容: 我们正在使用注册自己的协议的软件。我们可以从浏览器运行应用程序,然后通过如下链接: 但是有没有办法检查用户系统是否支持这种自定义协议?如果不是,我们想请用户先安装软件。 例如: 编辑 我知道关于protocolLong属性,但是它仅在IE中有效。 问题答案: 不幸的是,没有简单的方法来实现这一目标。当然,没有预先确定是否安装协议处理程序的方法。 *正如您所提到的, *Internet

  • 在我的应用程序中,我通过Chrome自定义标签打开了一个url。我们知道,当用户点击设备后退按钮或自定义后退按钮时,Chrome自定义标签会被关闭。是否有可能关闭Chrome自定义标签通过编程而不需要用户干预。

  • 我正在我的android应用程序中实施Fit-bit rest客户端授权。我使用自定义选项卡打开Fitbit授权URL,如“https://www.fitbit.com/oauth2/authorize?response_type=code 未报告此行为的日志。 任何建议都可能有助于我理解这种行为。

  • 在使用网页视图时,我可以使用重新加载()来刷新网页。但是在Chrome自定义标签中,我如何重新加载网页?请引导我。 谢谢

  • 有没有办法使用自定义Chrome标签页发送带有网址的帖子数据?就像使用网络视图一样: 在留档或示例中找不到任何相关信息。

  • 我正在尝试制作一个活动,它有几个文本视图,这些文本视图反过来又包含超链接。我使用了以下教程:http://www.android-examples.com/add-hyperlink-in-android-application-through-textview/ 我想让这些链接在chrome自定义标签点击时打开(类似于Gmail)。但我找不到任何教程说明如何这样做。