我正在尝试使用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
我可以使用什么来形成这些字符串,以了解我是在点燃而不是在其他设备上?
答案 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/