如何使用javascript检测kindle fire

How can I detect kindle fire with javascript?

本文关键字:kindle fire 检测 javascript 何使用      更新时间:2023-09-26

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

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

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

我可以从这些字符串中使用什么来知道我在kindle上,而不是在其他设备上?

在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
}

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

有两件事需要检查1/丝绸(或加速丝绸)2/"Kindle"、"KFOT"、"肯德基"或其他https://developer.amazon.com/sdk/fire/specifications.html

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

一个问题是Amazon会更改每个新模型的字符串。你只能检查Kindle、Silk和KF*,但这可能会导致误报。我对上面的一个例子中的代码进行了一些修改,使其可读性更强,易于维护。

截至2015年11月18日,以下代码应能正常工作。

检查https://developer.amazon.com/sdk/fire/specifications.html新车型。

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

<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>

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