如何用javascript检测kindle fire?

时间:2012-01-30 11:49:48

标签: javascript browser-detection kindle-fire

我正在尝试使用javascript检测我的网站是否在点燃的移动设备上运行。我尝试过使用navigator.userAgent和navigator.appVersion但是我在kindle上得到了这个结果:

5.0(Macintosh; U; Intel Mac OS X 10_6_3; zh-CN)AppleWebKit / 533.16(KHTML,与Gecko一样)Version / 5.0 Safari / 533.16

Mozilla / 5.0(Macintosh; U; Intel Mac OS X 10_6_3; zh-CN)AppleWebKit / 533.16(KHTML,类似Gecko)版本/ 5.0 Safari / 533.16

我可以使用什么来形成这些字符串,以了解我是在点燃而不是在其他设备上?

5 个答案:

答案 0 :(得分:15)

在Javascript中,

var ua = navigator.userAgent;
var isKindle = /Kindle/i.test(ua) || /Silk/i.test(ua) || /KFTT/i.test(ua) || /KFOT/i.test(ua) || /KFJWA/i.test(ua) || /KFJWI/i.test(ua) || /KFSOWI/i.test(ua) || /KFTHWA/i.test(ua) || /KFTHWI/i.test(ua) || /KFAPWA/i.test(ua) || /KFAPWI/i.test(ua);
if(isKindle) { 
//Your code here
}

答案 1 :(得分:7)

您应该检查两件事 1 /丝绸(或丝绸加速) 2 /“Kindle”,“KFOT”,“KFTT”或https://developer.amazon.com/sdk/fire/specifications.html

表中的其他人

在Silk或pass-through#1中应该给你确认,如果从WebView访问网页,那么#2会抓住它

答案 2 :(得分:6)

Kindle Fire的用户代理字符串是:

Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

在丝绸模式中:

Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.1.0-80) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true

答案 3 :(得分:2)

一个问题是亚马逊会为每个新模型更改字符串。您只能检查Kindle,Silk和KF *,但这可能会导致误报。我已经从上面的一个例子中改变了一些代码,使其更具可读性和易维护性。

截至2015年11月18日,以下代码应该有效。

检查https://developer.amazon.com/sdk/fire/specifications.html是否有新模型。

这是我编写的代码,用于将人们从我的网站重定向到我的游戏Luna Puma,用于Kindle Fire和Android手机:

<script type="text/javascript"> // <![CDATA[

   var ua = navigator.userAgent;

   var kindleStrings = [ 
    "Kindle",
    "Silk",
    "KFTT",
    "KFOT",
    "KFJWA",
    "KFJWI",
    "KFSOWI",
    "KFTHWA",
    "KFTHWI",
    "KFAPWA",
    "KFAPWI",
    "KFASWI",
    "KFTBWI",
    "KFMEWI",
    "KFFOWI",
    "KFSAWA",
    "KFSAWI",
    "KFARWI" ];

   var isKindle = false;

   for (index = 0; index < kindleStrings.length; index++) {
       var matchRegExp = new RegExp (kindleStrings[index]);
       if (matchRegExp.test (ua)) {
           isKindle = true;
           break;
       }
  }

   if (isKindle) { 
        document.location = "amzn://apps/android?asin=B01859LRE0";
   }

   var isAndroid = /Android/i.test (ua);

   if (isAndroid && !isKindle) {
      document.location = "https://play.google.com/store/apps/details?id=com.xanamania.lunapuma";
   } // ]]>

 </script>

答案 4 :(得分:0)

可以在博客上找到用于检测Silk的Silk User-Agent和示例JavaScript代码: http://amazonsilk.wordpress.com/useful-bits/silk-user-agent/