我正在尝试将ChromeCustomTabs用于我们的项目中。当我使用mayLaunchUrl时遇到了几个问题。我检查了谷歌在github上的代码。我只需设置一个按钮来测试mayLaunchURL(预呈现功能),当我使用chrome dev工具查找流量时。我做了流量和标签得到触发器和网址被加载(这只是一个与params的GET调用)。但是,当我多次点击它时(经过8-10次,每次都有不同的参数),停止工作。我停止看到发出的请求。 (在chrome dev工具上没有看到,也没有我设置的代理)。
我想知道mayLaunchURL功能是否有限制时间(限制),换句话说,在这种情况下我们可以预渲染多少页?有没有办法手动取消预渲染页面并释放资源?
bindCustomTabsService的时间有限制吗?我调用mayLaunchURL的方法是在完成选项卡后进行活动并终止活动。每次即使每次“杀死(完成)”活动,我都可以绑定服务吗?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
customTabActivityHelper = new CustomTabActivityHelper();
customTabActivityHelper.setConnectionCallback(this);
}
@Override
protected void onStart() {
super.onStart();
customTabActivityHelper.bindCustomTabsService(this);
}
@Override
public void onCustomTabsConnected() {
Boolean mayLaunchUrlAccepted = customTabActivityHelper.mayLaunchUrl(Uri.parse(“the URL?f=“+params), null, null);
// the mayLaunchUrlAccepted always return true in my case. Even when there is no request sent.
}
答案 0 :(得分:1)
是的,mayLaunchURL()在电池/ RAM /网络方面非常昂贵,因此它在应用UID级别上受到限制。但是限制在一段时间后会下降。
最佳策略是使用mayLaunchURL(),如果用户将导航到URL的信心非常高。
“低信任度”mayLaunchURL()不受限制,但执行更有限的一组操作(当前预连接,未指定,可能会更改)。低置信度mayLaunchURL是通过提供null作为uri和其他类似的URL中的URL列表来触发的。