是否有可能检测到三星股票浏览器

时间:2013-02-19 02:16:51

标签: javascript canvas android-browser navigator

因为三星股票浏览器的画布错误,我的程序会导致错误。 (http://code.google.com/p/android/issues/detail?id=39247

所以我想在所有三星股票浏览器上禁用画布。

我可以通过导航器对象或其他方式检测到它吗?

我发现了同样的问题,但它的解决方案看起来并不完美 (javascript - regex matching devices on user agent

Wiki显示三星拥有更多型号。 (http://en.wikipedia.org/wiki/Samsung_Galaxy_S_III

5 个答案:

答案 0 :(得分:5)

你可以简单地这样做

var isSamsungBrowser = navigator.userAgent.match(/SamsungBrowser/i)

答案 1 :(得分:3)

以下正则表达式几乎涵盖了所有三星移动设备。

if(navigator.userAgent.match(/SAMSUNG|Samsung|SGH-[I|N|T]|GT-[I|N]|SM-[A|N|P|T|Z]|SHV-E|SCH-[I|J|R|S]|SPH-L/i)) {
    console.log("it's Samsung");
    // your code for Samsung Smartphones goes here...
}

答案 2 :(得分:0)

使用userAgent就足以检测到这个bug。查找字符串534.30。例如:

  if (window.navigator && window.navigator.userAgent.indexOf('534.30') > 0) {
    // Clear the canvas a different way because they are using a known-bad version of the default android browser
  }

答案 3 :(得分:0)

一些三星用户代理商中有“三星”这个词。如果您在用户代理字符串中找到“samsung”,那么它就是一个很好的指标。但是,我看过的大多数三星用户代理都没有包含三星这个词。但是有一个不同的检查,所有三星型号(到目前为止)的格式为“GT-xxxxxx”,所以我们检查用户代理有“android”,然后在UA的某处“GT-”。 (或三星这个词......)这显然有些松懈,但到目前为止似乎已经确定了......

答案 4 :(得分:0)

我认为可以:

const isSamsungBrowser = navigator.userAgent.indexOf('SamsungBrowser') > - 1