自定义标签支持库

最近增加了这个支持库,但我找不到任何例子。

这个图书馆的目的是什么?

你可以发表任何使用这个库的例子吗?

Solutions Collecting From Web of "自定义标签支持库"

CustomTabs用于在支持CustomTabs的浏览器中打开链接。 最有可能的开放是在Chrome上完成的,因此CustomTabs是铬平台的一部分。

目的是避免在你的应用程序中实现WebViews,并且给你select样式化实际的铬选项卡,比如工具栏颜色,标题,各种退出/input转换,添加操作button和菜单。 CustomTabs将允许您的应用程序绑定到chrome服务,并使chrome作为应用程序的一部分工作。 样式会让你感觉到打开的网页资源是你的应用程序的一部分。

除了样式外,CustomTabs还会为您提供完整的Chrome网页function,这可能无法用标准WebView实现。

这里是演示 ,这是直截了当的。

编辑:

从我的应用程序的一个片段,这是谷歌演示的“简化”版本,目前缺乏回退机制。

助手的用法如下:

  1. 当你的活动活着的时候初始化它

  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_preview); mCustomTabHelper = new SimpleCustomChromeTabsHelper(this); 
}

2.当实例处于活动状态时,我们可以调用:

mCustomTabHelper.prepareUrl(mProduct.getRedirectUrl());

这将绑定到Chrome服务,如果以前没有绑定,或者只是通知Chrome服务,我们将来可能会打开该链接。 CustomTabSession可用于打开或准备多个url。

  1. 打开url

    mCustomTabHelper.openUrl(mProduct.getRedirectUrl());

openUrl的重载方法是使用CustomTabIntent.Builder副本的UI选项构build器,但是我已经删除了CustomTabsSession参数,因此以后的帮助器将在内部构buildCustomTabIntent

我正在稳定运行Chrome Dev版本。 如果我select稳定的,我根本无法使用CustomTabs 。 作为Google的build议,CustomTabs只能在Chrome 45和Chrome版本上运行。

从我的应用程序演示: https : //youtu.be/fnIZwuJXjHI

编辑 : 发布

尝试这个:

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); 

Github上有一个演示项目 ,由@NikolaDespotoski提到,可以部分重用。

解决scheme是基于这篇文章 。

  1. 将项目共享添加到您的项目。 共享是一个项目的名称(我不知道为什么谷歌没有把它添加到customtabs库)。 链接到共享项目

  2. 从演示项目复制活动助手到您的项目,并把正确的包。 CustomTabActivityHelper

  3. 要预取URL,请使用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); } }); 

url的预取更加复杂。 你可以看到这个演示更好的理解。