要使用Chrome自定义标签,您是否希望用户单独下载Chrome(测试版),还是将Chrome自定义标签应用到您的应用中时是否包含在内?
答案 0 :(得分:4)
如果没有安装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传递给它。这真的取决于你的需求。因此,如果您愿意,可以使用多种后备类型。
答案 1 :(得分:3)
要使自定义标签生效,用户需要安装支持自定义标签的浏览器。
从版本45开始,它已在Chrome制作版上提供。
目前,Chrome是唯一支持它的浏览器,但由于它是开放式协议,预计其他浏览器将来会支持它。
答案 2 :(得分:0)
@ andreban的回答是正确的。我想再详细说明一下。
是的,为了使自定义标签能够正常工作,用户需要拥有Chrome v45 +。但由于您要发送Intent.ACTION_VIEW
,Android会启动默认浏览器。它只是忽略了您在intent
中添加的所有参数。
我们正在使用ACTION_VIEW Intent,这意味着默认情况下页面将在系统浏览器或用户的默认浏览器中打开。
如果用户安装了Chrome并且它是默认浏览器,它将自动选择EXTRAS并显示自定义UI。另一个浏览器也可以使用Intent附加功能来提供类似的自定义界面。