公司要做一个APP下载页面,里面需要判断是安卓还是苹果访问本页面,最开始想偷懒直接在给IOSAPP返回IOSAPP商店地址,然后Android直接进行访问。但想着毕竟做两个页面不利于后期维护和修改,打算还是随手写一段js进行判断。

  js对客户端的操作系统进行判断主要通过navigator中的信息进行分析判断。其中常用于判断的有navigator.platform、navigator.userAgent这两个。

  platform(运行浏览器的操作系统平台)

  在windows下显示了Win32,在安卓设备下显示Linuxi586,在mac中显示了MacPPC,在iphone中显示IOS...找出我们需要的平台的信息,通过indexOf进行判断是否存在关键字,即可判断。

  UserAgent(由客户机发送服务器的 user-agent 头部的值)

  UserAgent中一般会附带部分操作系统特有的值,比如安卓设备中会有‘Android’、‘Adr’,IOS设备中会有'iPhone OS'等,通过这些特征即可进行判断。

    方法远不止这两种,还有通过navigator中的appVersion等其他属性进行判断亦可,但所有的判断都做不到百分百准确,因为这些都是通过分析客户端发送的信息进行判断,但如果客户通过修改客户端进行伪造,亦是可以的。前段时间百度云不允许在网站上下载大文件,必须要下载客户端,很快就有网友发现了绕开的方法。其原理就是对于操作系统的判断,百度云网站中首先判断该用户使用的是否为windows操作系统,如果是则不允许下载超过一定大小的文件,而在linux中则可以,网友通过修改platform的信息简单实现了破解,其中涉及的知识不深,但需要灵活运用,还是要对navigator熟悉才可。

  

js识别当前用户设备的几个方法的更多相关文章

  1. js识别用户设备是移动端手机时跳转到手机网站

    一.识别到用户的设备是手机等移动端设备时跳转到移动端网站 var mobileAgent = new Array("iphone", "ipod", " ...

  2. [js]识别浏览器及版本

    var userAgent = navigator.userAgent.toLowerCase();window.jQuery.browser = {    version: (userAgent.m ...

  3. js实现浏览器用户信息收集

    前言 这是一个通过html5,javascript用于收集用户通过上网泄漏的各种信息,包括地理位置,IP地址,照片,语音,浏览器版本等信息.结合大数据,可实现广告定向投放,用户追踪,用户行为分析,用户 ...

  4. js如何判断用户是在pc端和还是移动端访问

    js如何判断用户是在pc端和还是移动端访问 来源:A5技术交流 作者:wofa 时间:2014-04-25收藏本页 最近一直在忙我们团队的项目“咖啡之翼”,在这个项目中,我们为移动平台提供了一个优秀的 ...

  5. 【前端】js代码模拟用户键盘鼠标输入

    js代码模拟用户键盘鼠标输入 原生js var event = new Event('mousewheel'); event.wheelDelta = 360 document.dispatchEve ...

  6. 浏览器兼容处理(HTML条件注释、CSSHack和JS识别)

    前面的话 本文中所有IEx+代表包含x及x以上:IEx-代表包含x及x以下,仅个人习惯.例:IE7+代表IE7.IE8…… 本文中所有例子全部经过测试,欢迎交流. HTML识别 条件注释法(IE10+ ...

  7. js监听用户的键盘敲击事件,兼容各大主流浏览器

    js监听用户的键盘敲击事件,兼容各大主流浏览器 <script type="text/javascript"> document.onkeydown = functio ...

  8. js正则实现用户输入银行卡号的控制及格式化

    //js正则实现用户输入银行卡号的控制及格式化 <script language="javascript" type="text/javascript"& ...

  9. iOS获取用户设备崩溃日志并分析

    项目最近发布,部分用户在内侧使用,正好遇到一些问题,由于用户在其他城市,所以对于用户设备产生的崩溃日志,不好直接拿设备连接电脑. 对于这种情况,我们可以这样: 1.引导用户开启iOS设备设置-> ...

随机推荐

  1. jq方法中 $(window).load() 与 $(document).ready() 的区别

    通过自学进入了前端的行列,只知道在js中,一开头就写一个: window.onload = function(){ //doing sth} 然后所有的乱七八糟的代码全塞里面,大概知道window.o ...

  2. 配置react native遇到的问题

    折腾了两天终于解决了问题,一开始用模拟器是报如下图的错 然后用真机的时候又报下图的错 这个错误网上有很多解决方法,说是要降级处理,将build.gradle中的1.3.1改成1.2.3,但是改完之后问 ...

  3. html5存储方式localstorage和sessionStorage

    html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage. 区别:localStorage无时间限制,除非主动删除数据,否则永不过期:sessio ...

  4. ADO.NET常用对象

    一.Connection对象 Connection对象也称为数据库连接对象,Connection对象的功能是负责对数据源的连接.所有Connection对象的基类都是DbConnection类. Co ...

  5. CUDA[2] Hello,World

    Section 0:Hello,World 这次我们亲自尝试一下如何用粗(CU)大(DA)写程序 CUDA最新版本是7.5,然而即使是最新版本也不兼容VS2015 ...推荐使用VS2012 进入VS ...

  6. 蓝牙4.0(BLE)开发

    转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/26740237 作者:小马 IOS学习也一段时间了,该上点干货了.前段时间研究了一下 ...

  7. django表单验证和跨站伪造csrf

    Form验证 django中的Form一般有两种功能: 输入html 验证用户输入 django使用内置form方法验证表单提交的数据 html页面 <!DOCTYPE html> < ...

  8. UVA1585

    #include<stdio.h> #include<string.h> int main(){ int n; ]; scanf("%d",&n); ...

  9. php截取中文无乱码

    在PHP中需要对字符串进行截取,如果没有装mb扩展(mb_substr函数),对中文截取就需要进行相应的处理.下面是对字符串 "世s界s的功s\\\夫萨的mn是非得失sdf dsf dsf ...

  10. Linux的3个文件时间

    文件的三个时间相信大家都已经很熟悉windows操作系统了,当我们在windows系统下创建一个文件时,系统同时会为这个文件建立相关的参数去描述这个文件,如图: 这些参数包括文件的大小,文件类型,位置 ...