我在一个私人开发子版块上运行了一款 Devvit 网页游戏(@devvit/web 0.14.0)进行 playtest。当玩家完成草稿后,我的服务器会通过 reddit.submitCustomPost 创建第二个自定义帖子,等待 reddit.getPostById 成功返回,然后将该帖子的标准固定链接返回给 webview。随后,webview 在点击按钮(真实的用户手势)时调用:

import { navigateTo } from '@devvit/web/client';
navigateTo(url); // https://www.reddit.com/r/<sub>/comments/<id>/<slug>/

问题(仅限 iOS Reddit 应用):间歇性地,点击操作会关闭当前用户正在浏览的互动帖子,但导航到目标帖子的操作从未发生。用户会停留在之前底层的屏幕上,在我的场景中就是子版块信息流,因为他们正是从那里打开当前帖子的。所以这不是 URL 解析错误;当前帖子视图被关闭,而跳转至新帖子的推送被静默丢弃。

当此情况发生时,目标帖子肯定已经上线:服务器确认它在回复前约 3 秒可读取,我的应用的评论已经发布到该帖子上,并且我在导航持续失败的同时收到了该帖子的推送通知。Web 端从未错过。Android 端也一直正常,尽管我在那里的样本较少。

由于 navigateTo 是“发后即忘”的,我添加了分析。每次点击都会记录传递的确切 URL 以及自帖子确认以来的延迟。到达率指标定义为目标帖子自己的 webview 在 3 分钟内报告了一次浏览。这个指标可能会高估失败次数(用户可能在 webview 报告之前到达并关闭应用),但我观察到的每一次失败最终都停留在信息流中,目标帖子从未打开。

  • 从挂载时的 effect 触发 navigateTo,iOS:12 次中到达 10 次
  • 从挂载时的 effect 触发 navigateTo,Web:10 次中到达 10 次
  • 从按钮点击触发 navigateTo,iOS:11 次中到达 6 次

失败在时间上聚集,而非由我控制的任何因素导致。某一晚(UTC 时间 04:17 至 04:34),在帖子确认后 1.0 秒、2.1 秒和 5.7 秒连续点击三次,都回退到了信息流,而第四次在 21.7 秒时点击成功了。第二天,在帖子确认后 0.8 秒和 1.4 秒点击都正常。相同的应用版本、相同的设备、相同的子版块、相同的 URL 格式。

已排除我方原因:
* 帖子的可读性:服务器轮询 getPostById,只有在帖子可读时才回复(日志显示每次都是“约 3000ms 后可见,1 次读取”,包括每次失败)
* URL 格式:完整的标准固定链接带 slug,在成功和失败的分析中都已验证
* 用户手势与程序化调用:两者都表现出相同的失败模式(当前帖子被关闭,目标从未打开),但根据上述数据,按钮点击路径的失败率高于挂载路径
* 消息已到达宿主:每次失败时当前帖子视图都被关闭,因此应用执行了调用;只有后半部分(打开目标)被丢弃

这似乎与我记得的今年六月在本子版块上的一篇报告有关,其中 navigateTo 到另一个自定义帖子时,帖子打开了但 webview 在 iOS 上显示为空白。我相信该报告也提交到了 r/bugs,一位管理员表示正在调查。相同的调用、相同的平台、类似的症状。区别在于我的情况中目标帖子从未打开。我找不到那篇帖子的链接,所以如果有人手头有,我将不胜感激。

问题:
1. 是否存在已知的 iOS 问题,即从 webview 调用 navigateTo 会关闭当前帖子但丢弃对目标帖子的跳转,尤其是在目标帖子刚刚创建几秒后?
2. 是否有受支持的方式,可以可靠地将一个自定义帖子的 webview 切换到另一个自定义帖子,且 iOS 应用能稳定处理?

环境:@devvit/web 0.14.0,playtest 应用在私人开发子版块上,Reddit iOS 应用 2026.33.0.636484,iOS 26.5.2。
如需,我乐意与 Reddit 的任何人分享应用名称、帖子 ID 以及失败点击的确切 UTC 时间戳。