最近添加了这个支持库,但我找不到任何示例。
这个图书馆的目的是什么?
您可以使用此库发布任何示例吗?
答案 0 :(得分:32)
CustomTabs
用于在支持CustomTabs
的浏览器中打开链接。最有可能的开放是在Chrome上完成的,因此CustomTabs
是Chrome平台的一部分。
目的是避免在应用程序中实现WebView,同时为您提供样式化实际chrome选项卡的选项,例如工具栏颜色,标题,各种退出/输入转换,添加操作按钮和菜单。 CustomTabs
将允许您的应用程序绑定到chrome服务,并使chrome作为应用程序的一部分工作。样式将让您感受到打开的Web资源是您的应用程序的一部分。
除了样式之外,CustomTabs还将为您提供完整的Chrome网页功能,这些功能可能无法通过标准WebView
实现。
以下是demos,这是直截了当的。
修改强>
snippet from my application,简化了""谷歌演示的版本,目前缺乏回退机制。
帮助程序的用法如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preview);
mCustomTabHelper = new SimpleCustomChromeTabsHelper(this);
}
2.当实例存活并且我们准备好打开URL时,我们可以调用:
mCustomTabHelper.prepareUrl(mProduct.getRedirectUrl());
哪个绑定到Chrome服务,如果以前没有绑定,或者只是通知Chrome服务,我们将来可能会打开该链接。
CustomTabSession
可用于打开或准备多个网址。
打开网址
mCustomTabHelper.openUrl(mProduct.getRedirectUrl());
openUrl
的重载方法使用的是ui选项构建器,它是CustomTabIntent.Builder
的副本,但我删除了CustomTabsSession
参数,以便稍后构建帮助器{{1在内部。
我正在运行Chrome Dev版本。如果我选择稳定版,我根本无法使用CustomTabIntent
。根据Google的建议,CustomTabs仅适用于Chrome 45和Beta版Chrome。
我的应用程序演示:https://youtu.be/fnIZwuJXjHI
修改:Post
答案 1 :(得分:0)
@NikolaDespotoski提到的demo project on github可以部分重复使用。
解决方案基于this article。
将项目共享添加到您的项目中。共享是项目的名称(我不知道为什么Google没有将其添加到customtabs
库中)。 link to shared project
将活动助手从演示项目复制到您的项目并放入正确的包。 CustomTabActivityHelper
要预先获取网址,请使用CustomTabActivityHelper#mayLaunchUrl
方法(如果需要)和CustomTabActivityHelper#openCustomTab
打开Chrome自定义标签。
例如,打开自定义标签:
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder().build();
CustomTabActivityHelper.openCustomTab(this, customTabsIntent, uri,
new CustomTabActivityHelper.CustomTabFallback() {
@Override
public void openUri(Activity activity, Uri uri) {
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
});
预取网址更复杂。您可以看到this demo以便更好地理解。
答案 2 :(得分:0)
试试这个:
gradle依赖:
dependencies {
...
compile 'com.android.support:customtabs:25.1.0'
}
代码:
Uri uri = Uri.parse("https://github.com/mzelzoghbi");
// create an intent builder
CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder();
// Begin customizing
// set toolbar colors
intentBuilder.setToolbarColor(ContextCompat.getColor(this, R.color.colorPrimary));
intentBuilder.setSecondaryToolbarColor(ContextCompat.getColor(this, R.color.colorPrimaryDark));
// build custom tabs intent
CustomTabsIntent customTabsIntent = intentBuilder.build();
// launch the url
customTabsIntent.launchUrl(activity, uri);