检测iOS smartbanner功能可用性

问题描述 投票:1回答:2

我正在使用jQuery Smartbanner(https://github.com/jasny/jquery.smartbanner)来支持跨移动操作系统的智能标语。但是我遇到了一个问题,那就是只有iOS Safari才能原生支持smartbanner功能,而其他iOS浏览器却不支持。因此,当我只是激活此插件时,Safari会向我显示两个智能横幅(本机和自定义),以及其他浏览器(如假设的那样)。我添加了下一个检查,以确保用户使用的是iphone / ipad / ipod和safari。

if ( !(/(iPad|iPhone|iPod).*OS [6-7].*AppleWebKit.*Mobile.*Safari/.test(navigator.userAgent)) )
    $.smartbanner()

但是此条件检查会限制所有iOS移动浏览器,不仅限于Safari。因此,我发现,我不能仅仅为了不专门应用smartbanner()插件而简单地检测移动safari。

有关专门检测iOS Safari的任何技巧?

P.s .:所有safari浏览器在navigator.userAgent中都有“ Safari”一词

javascript ios safari smartbanner
2个回答
0
投票

当前通过在条件中添加“版本”一词来解决该问题。我发现只有Safari才能在iOS的userAgent中使用这个词(Chrome,例如,没有)。

所以最终条件如下:

if ( !(/(iPad|iPhone|iPod).*OS [6-7].*AppleWebKit.*Version.*Mobile.*Safari/.test(navigator.userAgent)) )
    $.smartbanner()

0
投票

对于那些寻求替代解决方案的人,您也可以选中smartbanner.js,它在iOS和Android上都是开箱即用的。

您还可以基于元标记进行定位,例如仅适用于Android:

<meta name="smartbanner:enabled-platforms" content="android">

或更复杂的方式:

<meta name="smartbanner:exclude-user-agent-regex" content="^.*My Example Webapp$">
© www.soinside.com 2019 - 2024. All rights reserved.