一个问题是,亚马逊改变每个新模型的字符串。您只能检查Kindle,Silk和KF *,但这可能会导致误报。我已经改变了上面的一个例子中的代码,使其更易读易维护。
截至2015年11月18日,下面的代码应该可以工作。
检查https://developer.amazon.com/sdk/fire/specifications.html为新模型。
这是我写的人到我的游戏月神彪马重定向从我的网站都的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>
真棒。你能提供一个可以作为Kindle更新到更新版本的注册表吗? – Aaron 2012-08-14 21:20:01
以上将无法超越第一代Kindle Fire。如果亚马逊在用户代理字符串中坚持使用“Kindle Fire”,那将会很不错,但自Kindle Fire第二代起,他们就转向了神秘的首字母缩略词,如KFTT,KFJWI和KFJWA。详情请参阅:https://developer.amazon.com/sdk/fire/specifications.html#UserAgentStrings – 2013-09-06 15:49:29