0

我正在尝试在我们的项目中使用 ChromeCustomTabs。我在使用 mayLaunchUrl 时遇到了几个问题。我检查了谷歌在 github 上的代码。当我使用 chrome 开发工具查找流量时,我只是设置了一个按钮来测试 mayLaunchURL(预渲染功能)。我做了流量和选项卡触发并加载了网址(它只是一个带有参数的 GET 调用)。但是,当我多次单击它时(8-10 次后,每次都使用不同的参数),它停止工作。我不再看到发出的请求。(在 chrome 开发工具上看不到,也没有在我设置的代理上看到)。

我想知道 mayLaunchURL 功能是否有限制时间(restriction),换句话说,在这种情况下我们可以预渲染多少页?有没有办法手动取消预渲染页面并释放资源?

绑定CustomTabsService 的时间是否有限制?我调用 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.
}
4

1 回答 1

0

是的,mayLaunchURL() 在电池/RAM/网络方面非常昂贵,因此它在应用程序 UID 级别上受到限制。但是一段时间后限制会降低。

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

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

于 2016-03-24T14:36:16.170 回答