为什么在 1.7.1 版本中,Android 应用从使用应用内浏览器视图切换为在完整浏览器中打开网站?
我认为 这个提交 就是原因,因为它移除了对 ChromeCustomTab 的使用。
为什么在 1.7.1 版本中,Android 应用从使用应用内浏览器视图切换为在完整浏览器中打开网站?
我认为 这个提交 就是原因,因为它移除了对 ChromeCustomTab 的使用。
现在应用程序有一半的几率在启动时崩溃。能否降级到旧版本?
很抱歉听到应用在启动时崩溃,我会立即调查。能否告知您使用的设备型号及 Android 版本?
正如您所指出的,改用默认浏览器而非 ChromeCustomTab 的变更是在 2020 年的那次提交中引入的,理论上在上一版本(我认为是 1.6.0)中就已经存在。我们之所以做出这一调整,是因为 ChromeCustomTab 存在漏洞,且要求设备上必须安装 Chrome 才能正常运行(许多用户曾对此提出抱怨)。
三星 Galaxy S9 运行 Android 10,安全补丁日期为 2021 年 5 月 1 日(当前可用最新版本)。我认为崩溃发生在应用长时间处于后台且未被显式关闭时。
该提交的时间晚于 1.6.0 版本的发布(若 https://apkpure.com/discoursehub/com.discourse/versions 信息准确,则为 2020 年 2 月)。被移除的代码原本用于处理未能使用 ChromeCustomTab 并直接启动链接的情况,否则在没有安装 Chrome 的情况下应用根本无法启动?
谢谢,你说得对,移除 ChromeCustomTab 的操作是在 1.6.2 版本中完成的,但该版本从未发布到生产环境(仅处于测试阶段)。因此,这一变更实际上是在 1.7.0 版本中首次引入的。有关我们为何进行此次切换的更多详情,请参阅 https://meta.discourse.org/t/discourse-hub-doesnt-open-forums-in-their-pwas/117350/12。除了无需依赖 Chrome 之外,此次变更还允许从 DiscourseHub 启动 PWA。
我即将推送一个包含崩溃问题修复的测试版本。准备好后,我会在此处发布链接。
好的,所以解决方案是为每个论坛安装 PWA?不,这也不行,它仍然会在 Firefox 中打开标签页(尽管我是用 Chrome 创建的 PWA)。我得说,我从未觉得 Chrome 标签页的体验缓慢,肯定比打开完整浏览器要快。返回枢纽站的速度也很快,只需下拉即可显示 Chrome 标签页上的关闭按钮。
是的,您可以在使用 PWA 或浏览器之间进行选择。如果未看到提示,您可以重置默认设置。在您的 Android 设置中搜索“打开链接”,找到您网站的 URL,然后在对应页面点击“清除默认设置”。完成后,当您访问 DiscourseHub 时将会看到提示;如果您已安装 PWA,界面应与此类似:
另外,针对崩溃问题,请在测试版发布渠道尝试版本 1.7.2 - https://play.google.com/store/apps/details?id=com.discourse
我没有 Google 账号,因此无法访问测试版渠道(我使用的是 Aurora Store,但它似乎不支持该功能)。
我已清除 Firefox 的默认设置,现在出现了提示,但只显示浏览器,没有显示 PWA。
而且 Chrome PWA 也没有向我发送通知。没关系,通过禁用再启用功能,它成功发送了一条通知。进一步调查并阅读 Add to homescreen banner on Android - #62 by Falco 后,我发现 WebAPK 部分对我无效,因为正是它负责绑定网站 URL 的意图,而我在应用抽屉或应用设置中并未看到新图标。
我刚刚在手机上测试了将您的网站添加为 WebAPK,它确实成功了,但花费了一些时间。测试其他网站后发现,Google 的 WebAPK 生成服务器目前有点慢,但等待几分钟对我来说是有效的。
应用的 1.7.2 版本现已在 Google Play 商店中发布(不过尚不清楚 Aurora Store 需要多久才能检测到该更新)。
Aurora 商店依赖 Google Play 商店,只是无需在手机上登录 Google 账户(它使用匿名账户获取令牌)。
这或许就是 WebAPK 对我无效的原因——如果它们需要通过 Google 服务器创建 Google 账户的话。
或者,是因为 Chrome 会调用 Google Play 来安装 WebAPK(参见 chromium/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java at main · chromium/chromium · GitHub Google 账户。
因此,为了解决用户对 Chrome 被自动安装的投诉,你们移除了 ChromeCustomTab,转而采用围绕 WebAPK 的工作流程。然而,WebAPK 要按预期运行,需要 Chrome(或三星浏览器)以及一个 Google 账户。这使得方案的可访问性降低了。此外,其实还有一种方法可以使用默认浏览器的自定义标签页实现,因为在我使用的约半数应用中,提供的是“由 Firefox 支持”的版本,而非 Chrome 版本。
我对此进行了一些调查,发现了以下内容:
以下是我在设备上正确实现 Firefox 自定义标签页的代码示例:
那么,您能否重新添加此功能,并加入额外的检测逻辑?这样可以彻底移除对 Chrome 的依赖,让应用重新变得可用。
问题在于,我希望让用户拥有选择权。回到 CustomTabs(并修复仅支持 Chrome 的问题)并不能提供选择,而是始终强制使用自定义标签页。这样一来,想要通过浏览器或 PWA 打开网站的用户就无能为力了。我们不能退回到那种状态。
不过,我会尝试寻找一种方法,将应用内自定义标签页作为一个选项,与浏览器和 PWA 并列提供。这有点棘手,不确定是否完全可行,但我会尽力尝试。
我可能需要一点时间才能着手处理这项任务,但一旦有可测试的 Beta 版本,我会立即告知您。
我在周末抽出时间,刚刚推送了 Android 应用的更新版本(1.7.3),该版本允许用户切换回使用自定义标签页。屏幕右下角新增了一个按钮,点击后会显示设置界面,您可以在其中进行切换。待您更新后,请告知使用情况。
我在 Google Play 上找不到更新后的应用,是不是被 Google 审核卡住了,还是其他原因?
今天应该就能上线了,抱歉(Play 商店界面默认采用分阶段发布)。
运行符合预期:启用设置时打开了 Chrome 标签页,禁用设置时则启动了完整浏览器。感谢如此快速的更新 ![]()
该版本已修复崩溃问题,但我使用的最新 1.7.3 版本又频繁崩溃。
我目前处于测试频道,这些版本在测试频道和 Play 商店的生产环境中是同步的吗?
[编辑]:当启用“在应用内浏览器中打开网站”时,已启用 PWA 的网站仍会作为独立应用打开(这是预期行为),但崩溃频率显著降低(几乎不再发生);而取消该设置后,应用每次都会崩溃。