检测并防止在 Chrome 个自定义标签页中打开新标签页
Detect & prevent opening new tabs inside Chrome Custom Tabs
背景:
- 我们的网络应用程序具有通过电子邮件向用户发送 link 的功能。
- 在电子邮件中单击时,link 应该会打开我们的网络应用程序。
- 我们的网络应用程序 (window A) 包括一些创建新选项卡的操作,因为内容无法在 iFrame 中呈现 (window B)
- window A 和 window B 使用
postMessage
. 进行通信
问题:
在 Android 设备上,使用 Gmail 应用程序,电子邮件中的 clicking/tapping links 在正确显示 Window A 的 Chrome Custom Tab
浏览器中打开结果页面。
但是,打开 window B 会将其定位在 window A 之上。虽然两个浏览上下文之间的 postMessage
正常工作 用户没有办法到 return 到 Window A。浏览器中的后退箭头将 return 用户转到 Gmail 应用程序。
我们希望检测到这种情况并优雅地回退,这样用户就不会发现自己陷入 Window B - 正如我们对其他非多标签浏览器(如 WebViews(Facebook 等)所做的那样).
似乎 Chrome 自定义标签使用与“常规”多标签 Chrome 浏览器 完全相同的用户代理,所以这不是一个选项。
如果有人想出一种通过 Chrome Custom Tabs
检测加载的方法,我们将不胜感激
Custom Tabs 和 Trusted Web Activity 在很大程度上是相同的协议。 中描述的解决方案也适用于自定义选项卡。
背景:
- 我们的网络应用程序具有通过电子邮件向用户发送 link 的功能。
- 在电子邮件中单击时,link 应该会打开我们的网络应用程序。
- 我们的网络应用程序 (window A) 包括一些创建新选项卡的操作,因为内容无法在 iFrame 中呈现 (window B)
- window A 和 window B 使用
postMessage
. 进行通信
问题:
在 Android 设备上,使用 Gmail 应用程序,电子邮件中的 clicking/tapping links 在正确显示 Window A 的 Chrome Custom Tab
浏览器中打开结果页面。
但是,打开 window B 会将其定位在 window A 之上。虽然两个浏览上下文之间的 postMessage
正常工作 用户没有办法到 return 到 Window A。浏览器中的后退箭头将 return 用户转到 Gmail 应用程序。
我们希望检测到这种情况并优雅地回退,这样用户就不会发现自己陷入 Window B - 正如我们对其他非多标签浏览器(如 WebViews(Facebook 等)所做的那样).
似乎 Chrome 自定义标签使用与“常规”多标签 Chrome 浏览器 完全相同的用户代理,所以这不是一个选项。
如果有人想出一种通过 Chrome Custom Tabs
Custom Tabs 和 Trusted Web Activity 在很大程度上是相同的协议。