我有两个网页。第一个在新选项卡中打开第二个。他们通过 JavaScript 的 postMessage 互相交谈。此设置在每个浏览器(桌面/移动)中都可以正常工作。
当我尝试在 Android 上使用 Chrome 自定义选项卡模拟相同的行为时,第二页以相同的布局而不是新的布局打开。结果我不能再使用 postMessage。
如何强制自定义选项卡内的链接在新的自定义选项卡中打开并保留 postMessage 功能?
我有两个网页。第一个在新选项卡中打开第二个。他们通过 JavaScript 的 postMessage 互相交谈。此设置在每个浏览器(桌面/移动)中都可以正常工作。
当我尝试在 Android 上使用 Chrome 自定义选项卡模拟相同的行为时,第二页以相同的布局而不是新的布局打开。结果我不能再使用 postMessage。
如何强制自定义选项卡内的链接在新的自定义选项卡中打开并保留 postMessage 功能?
无法从 Web 内容创建另一个自定义选项卡。这是因为我们希望保持一种快速返回打开选项卡的应用程序的方式。
另一方面,我不记得在 postMessage 中检查选项卡类型/可见性的逻辑。听起来像一个错误。
带有详细复制器的错误会很有帮助,请使用 README.md 中的“此模板”链接:https ://github.com/GoogleChrome/custom-tabs-client
谢谢!
叶戈尔,谢谢你的帮助!
该问题已通过安装最新版本的Android版 Chrome解决。
将 Chrome 自定义选项卡与 Chrome 48.0.2564.95 window2 一起使用会将其内容加载到window1中。从 Chrome 49.0.2623.91 开始,window1的状态被保留,并且window2在同一个自定义选项卡的顶部打开,因此隐藏了window1。postMessage 工作得很好。您可以查看随附的屏幕截图。
使用 Inspect Devices 进行 Android Chrome 调试
但是,仍然存在一个小错误。当从底部页面window1触发警报时,window2变为非活动状态,但仍然可见。这意味着焦点在window1上,但您会看到window2的内容。我必须使用调试器手动将焦点移回window2以恢复正确的工作设置。