1

我正在使用 Xamarin.Android 构建一个应用程序,该应用程序旨在当用户点击一个单元格时在 Chrome 中打开一个 URL。直到几个小时前,一切都运行良好。它在一台设备上运行良好,但在另一台设备上却不行。没有迹象表明为什么它没有在其中一部手机上打开 Chrome。过了一段时间,我手动打开 Chrome 以确保一切正常,并发现它在几分钟前自动更新了自己,我没有接受他们的条款和条件。接受它们后,一切都恢复正常了。

我的问题是没有迹象表明问题出在 Chrome 的 EULA 上,而且看起来我的应用程序是有问题的应用程序。我正在使用下面的代码使用 CustomTabsLibrary 启动 URL:

var intent = builder.Build ();
var mgr = new CustomTabsActivityManager (this);
mgr.CustomTabsServiceConnected += delegate {
mgr.LaunchUrl ("http://xamarin.com", intent);
};
mgr.BindService ();

当设备上未安装 Chrome 时,会调用下面的回调,但情况并非如此。在我们的例子中,如果用户不接受 Google Chrome 应用程序的 EULA,我们没有任何可用的回调知道,因此,它不会将用户重定向到 URL。

if (!mgr.BindService ()) {
   // Cannot use Custom Tabs,
   // Launch the URL another way
}

以前有人遇到过这个问题吗?我们有什么办法可以解决这个问题吗? 自定义标签库

Stackoverflow 上的相关问题

4

1 回答 1

0

谷歌现在似乎已经在 Chrome 上解决了这个问题。当用户未接受 TOS 时,现在调用回调并启动 Chrome,它应该将您带到可以接受 TOS 的屏幕。

于 2017-01-18T14:09:47.537 回答