如何使用javascript检测kindle fire
How can I detect kindle fire with javascript?
我正在尝试用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/
- 为什么我的ajax在提交用@HtmlRenderPartial加载的表单时只调用fire一次
- JavaScript表单提交没有't fire asp服务器端点击功能的提交按钮
- 如何在 Firebase 的 Angular-Fire 中使用 $save() 来更新对象属性值
- Fire Fox和IE的滚动条自定义设计
- Fire$ng在承诺实现后动画输入
- Ajax load在chrome中不起作用,而在Fire fox中工作
- jQuery Validate-Fire自定义'addMethod'聚焦/按键
- 手动加载Fire domContentLoaded
- fire js函数,当所有脚本都通过CDN交付时
- Javascript代码隐藏中的Fire事件
- 加载未打包的扩展时执行chrome.runtime.oInstalled fire
- Deviceready获胜't fire在Cordova-1.9.0与Android 4.1
- SyntaxError: missing ) after argument list in fire bug
- JavaScript 表单如何提交 fire angularjs 事件
- 来自 javascript 的 Fire Serverside 事件
- 嵌入在HTML文档中的JavaScript在作为文档发送到我的Kindle Fire时会执行吗?
- 如何使用javascript检测kindle fire
- 如何在Kindle Fire上调试丝绸浏览器
- 在CSS或JS中检测Kindle Fire
- 控制台.log或警报是否通过 ddms 在 Kindle Fire 应用程序内的 Web 视图中工作