2016-02-25 31 views
0

我正在尝试将ChromeCustomTabs应用到我们的项目中。当我使用mayLaunchUrl时遇到了几个问题。我查看了Google在github上的代码。我简单地设置了一个按钮来测试mayLaunchURL(prerender功能),当我使用chrome dev工具查找流量时。我做了交通和标签触发器和URL加载(这只是一个带有参数的GET调用)。但是,当我多次单击它时(在8-10次之后,每次都使用不同的参数),它会在STOP工作。我不再看到发送的请求。 (在chrome dev工具上没有看到,也没有在我设置的代理服务器上)。我们可以一次运行多少个mayLaunchUrl?

我想知道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. 
} 

回答

1

是,mayLaunchURL()是在电池/ RAM /网络而言是非常昂贵的,所以它被节流上应用UID水平。但一段时间后限制会下降。

如果用户导航到URL的置信度非常高,最好的策略是使用mayLaunchURL()。

mayLaunchURL()不受限制,但执行更多有限的一组操作(当前预连接,未指定哪个可能会更改)。 mayLaunchURL的低置信度是通过提供null作为uri和其他LikelyBundles中的URL列表来触发的。

相关问题