12

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

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

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

我发现了同样的问题,但它的解决方案看起来并不完美(javascript - 用户代理上的正则表达式匹配设备

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

4

5 回答 5

8

你可以简单地做到这一点

var isSamsungBrowser = navigator.userAgent.match(/SamsungBrowser/i)
于 2016-11-18T18:52:45.243 回答
6

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

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...
}
于 2015-03-24T10:19:26.573 回答
1

使用 userAgent 就足以检测到这个错误。寻找字符串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
  }
于 2013-04-10T20:24:49.393 回答
1

我认为可以:

const isSamsungBrowser = navigator.userAgent.indexOf('SamsungBrowser') > - 1
于 2020-10-29T15:06:06.200 回答
0

一些三星用户代理中包含“三星”一词。如果您在用户代理字符串中找到“samsung”,这是一个很好的指标。然而,我看到的大多数三星用户代理都不包含三星这个词。但是有一个不同的检查,所有三星型号(到目前为止)都是格式“GT-xxxxxx”,所以我们检查用户代理是否有“android”,然后是 UA 某处的“GT-”。(或三星这个词……)这显然有点松懈,但到目前为止似乎还不错……

于 2013-07-09T09:54:37.620 回答