最近添加了这个支持库,但我找不到任何示例。
这个图书馆的目的是什么?
你能发布任何使用这个库的例子吗?
最近添加了这个支持库,但我找不到任何示例。
这个图书馆的目的是什么?
你能发布任何使用这个库的例子吗?
CustomTabs
用于在支持CustomTabs
. 最有可能在 Chrome 上完成打开,因此CustomTabs
是铬平台的一部分。
目的是避免在您的应用程序中实现 WebView,但为您提供设置实际 chrome 选项卡样式的选项,例如工具栏颜色、标题、各种退出/进入转换、添加操作按钮和菜单。CustomTabs
将允许您的应用程序绑定到 chrome 服务并使 chrome 作为您应用程序的一部分工作。样式会让您感觉打开的 Web 资源是您的应用程序的一部分。
除了样式之外,CustomTabs 还将为您提供完整的 chrome web 功能,这些功能可能无法通过标准WebView
.
这是演示,它们是直截了当的。
编辑:
我的应用程序的一个片段,它是谷歌演示的“简化”版本,目前缺少回退机制。
助手的用法如下:
@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
可用于打开或准备多个url。
打开网址
mCustomTabHelper.openUrl(mProduct.getRedirectUrl());
的重载方法openUrl
是使用某种 ui 选项构建器,它是 的副本CustomTabIntent.Builder
,但我已经删除了CustomTabsSession
参数,因此稍后将在CustomTabIntent
内部构建助手。
我正在运行稳定版的 Chrome 开发版。如果我选择稳定的,我根本无法使用CustomTabs
。正如 Google 建议的那样,CustomTabs 仅适用于 Chrome 45 和测试版 Chrome。
我的应用程序演示:https ://youtu.be/fnIZwuJXjHI
编辑:发布
试试这个:
梯度依赖:
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);
@NikolaDespotoski 提到的github 上有演示项目,可以部分重用。
解决方案基于这篇文章。
将项目共享添加到您的项目。Shared 是项目的名称(我不知道为什么 Google 没有将它添加到customtabs
库中)。链接到共享项目
将 Activity 助手从演示项目复制到您的项目并放置正确的包。CustomTabActivityHelper
预取 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 的预取比较复杂。您可以查看此演示以更好地理解。