如何在javascript中检测当前是否显示了智能横幅应用?

时间:2013-12-11 10:03:43

标签: ios safari smartbanner

我想在Javascript中检测当前是否显示了智能应用横幅。我已经检查了DOM,但没有横幅的证据。

3 个答案:

答案 0 :(得分:4)

这是一个老问题,但也许这对某人有用。我是通过以下方式做到的:

  1. 检测到iOS用户代理;
  2. 使用window.matchMedia确定媒体查询的设备类型和方向;
  3. 已查看window.innerHeight
  4. 在我的实验之后,我有以下实验窗口。显示横幅的不同设备的内容高度值。你可以在下面找到它们:

    • iPhone 6 Plus肖像:544px;
    • iPhone 6 Plus格局:286px;
    • iPhone 6肖像:475px;
    • iPhone 6格局:247px;
    • iPhone 5& 5S肖像:376px;
    • iPhone 5& 5S风景:148px;
    • iPhone 2G,3G,4,4S,iPod Touch代1-4图像:288px;
    • iPhone 2G,3G,4,4S,iPod Touch第1-4代风景:148px

    希望这会对某人有所帮助。

答案 1 :(得分:2)

虽然智能应用横幅未显示在DOM中,但它确实将浏览器窗口的可用高度减少了84像素(这是我用IOS7 + iPhone5获得的数字)。

我将在window.innerHeight中使用此减少来确定是否显示SmartBanner。

(我需要确定用户是否有iPhone4或iPhone5)

移动Safari确实有其他位影响window.innerHeight但最多底部菜单(共享等)和顶部较大的地址栏将可用高度减少69像素(这也是我通过Safari获得的内容) Web Inspector)。

答案 2 :(得分:0)

如果您使用的是jquery:

hasSmartBanner = window.innerHeight !== $(window).innerHeight();