Chrome自定义选项卡是否需要用户下载Chrome应用程序?

7

为了使用Chrome自定义选项卡,您是否需要让用户单独下载Chrome(Beta)?还是在实现Chrome自定义选项卡时已经包含在其中?

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传递给它。这取决于你需要什么。所以如果你喜欢的话,你可以有多种备选类型。


谢谢您的回答! :) 很高兴知道如果用户没有安装所需版本的Chrome,它将在浏览器中打开。 - God Usopp

2

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

自Chrome 45版本以来,它已经在生产版Chrome上可用。

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


你说的开放协议是什么意思?你怎么知道它是开放协议的?如果有疑问,请随时提出并将其作为新问题。 - Anudeep Samaiya
该协议已经在GitHub上发布:https://github.com/GoogleChrome/custom-tabs-client/tree/master/customtabs。服务AIDL和Intent规范都在其中。我们正在为服务器端的实现编写更好的文档。这也在这个Youtube视频中提到:https://www.youtube.com/watch?v=QOxIdbNwpx0 - andreban

0

@andreban的回答是正确的。我想再详细解释一下。

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

来自文档

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

如果用户安装了Chrome并且它是默认浏览器,则会自动捕获EXTRAS并呈现定制UI。另一个浏览器还可以使用Intent extras来提供类似的定制界面。


啊,谢谢。我喜欢 Chrome 自定义选项卡的想法。一旦我们不需要要求用户下载 Chrome 就能使用它,那将是令人惊叹的。 - God Usopp

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