在 JavaScript 中检测苹果的强制幻象横幅

Posted

技术标签:

【中文标题】在 JavaScript 中检测苹果的强制幻象横幅【英文标题】:Detect apple's forced phantom banner in JavaScript 【发布时间】:2018-03-01 01:09:38 【问题描述】:

我不是 ios 开发者,对苹果的 Safari 配置知之甚少。 但是请听我说完。

我已配置通用链接,并且我了解如果安装了应用程序,使用 Safari 浏览器访问该网站会自动显示一个幻像横幅以在应用程序中打开页面。这似乎是苹果在其 Universal Link 设置中包含的政策之一。

下图显示了 Phantom 横幅的示例

我的问题是:如何通过 javascript 检测到这个 Apple 的 Phantom 横幅的存在?

【问题讨论】:

【参考方案1】:

确切地说,目前,如果在 safari 中启用了通用链接,则无法检测 Phantom 横幅。 你不能通过 JS 删除它,它在 DOM 中也不存在。

尝试集成第三方插件,例如 Firebase 或 Branch。 我尝试了 firebase,希望它能解决问题,下面是一个摘要。

它将为您的网页创建一个动态链接,该链接只不过是您的深层链接的包装。 但是这样一来,您将无法单击网页链接并打开应用程序,而是必须使用动态链接来打开应用程序。

动态链接可以位于您的域或自定义域中。 这是有关域配置的更多信息 https://firebase.google.com/docs/dynamic-links/custom-domains

就我而言,要求是直接链接到网站链接,所以这并没有太大帮助。但是,如果请求是通过单击链接打开应用程序,那么它会有所帮助,因为 Apple 应用程序关联文件不会在您的域中,并且您将看不到幻影横幅。

【讨论】:

以上是关于在 JavaScript 中检测苹果的强制幻象横幅的主要内容,如果未能解决你的问题,请参考以下文章

从 redis 中删除键/值 - 幻象键未删除

检测 HTTP 或 HTTPS,然后在 JavaScript 中强制使用 HTTPS

检测 HTTP 或 HTTPS,然后在 JavaScript 中强制使用 HTTPS

TVML 横幅尺寸

如何在 ios 的横幅栏上发送未覆盖的苹果推送通知

如何在 PhantomJS 中使用 JavaScript 检测网页上的声音?