为了使用Chrome自定义选项卡,您是否需要让用户单独下载Chrome(Beta)?还是在实现Chrome自定义选项卡时已经包含在其中?
为了使用Chrome自定义选项卡,您是否需要让用户单独下载Chrome(Beta)?还是在实现Chrome自定义选项卡时已经包含在其中?
如果没有安装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 45版本以来,它已经在生产版Chrome上可用。
目前,Chrome是唯一支持它的浏览器,但由于它是一个开放协议,其他浏览器未来有望支持它。
@andreban的回答是正确的。我想再详细解释一下。
是的,为了让自定义选项卡起作用,用户确实需要拥有Chrome v45+。但是因为你会发送 Intent.ACTION_VIEW
,Android将启动默认浏览器。它只会忽略您在intent
中放置的所有参数。
来自文档:
我们正在使用ACTION_VIEW Intent,这意味着默认情况下页面将在系统浏览器或用户的默认浏览器中打开。
如果用户安装了Chrome并且它是默认浏览器,则会自动捕获EXTRAS并呈现定制UI。另一个浏览器还可以使用Intent extras来提供类似的定制界面。