7

为了使用 Chrome 自定义选项卡,您是否必须期望您的用户单独下载 Chrome(Beta),或者当您在应用程序中实现 Chrome 自定义选项卡时包含它?

4

3 回答 3

5

如果没有安装 Chrome 浏览器,您可以根据需要使用 CustomTabFallback。在这里,您可以针对这种情况实施替代解决方案:

/**
 * A Fallback that opens the WebviewActivity when Custom Tabs is not available
 */
public final class WebviewFallback implements CustomTabActivityHelper.CustomTabFallback {

@Override
public void openUri(final Activity activity, final Uri uri) {
    final Intent intent = new Intent(activity, WebviewActivity.class);
    intent.putExtra(WebviewActivity.EXTRA_URL, uri.toString());
    activity.startActivity(intent);
}

}

这里我使用一个 Activity 来加载 URL,它只使用一个 WebView,我只是将 Uri 传递给它。这真的取决于你需要什么。因此,如果您愿意,可以有多种后备类型。

于 2015-10-16T11:34:52.753 回答
1

要使自定义选项卡正常工作,用户需要安装支持自定义选项卡的浏览器。

从 45 版开始,它已经在生产版 Chrome 上可用。

目前,Chrome 是唯一支持它的浏览器,但由于它是一个开放协议,预计未来其他浏览器也会支持它。

于 2015-10-11T10:11:42.057 回答
0

@andreban 的回答是正确的。我只想详细说明一下。

是的,为了让自定义选项卡正常工作,用户确实需要拥有 Chrome v45+。但是因为你会发送Intent.ACTION_VIEW,Android 会启动默认浏览器。它只是忽略了您在intent.

文档

我们使用的是 ACTION_VIEW Intent,这意味着默认情况下页面将在系统浏览器或用户的默认浏览器中打开。

如果用户安装了 Chrome 并且它是默认浏览器,它将自动选择 EXTRAS 并呈现自定义 UI。另一个浏览器也可以使用 Intent extras 来提供类似的自定义界面。

于 2015-10-13T01:25:15.647 回答