公司要做一个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. iOS App上架流程(2016详细版)

    iOS App上架流程(2016详细版) 原文地址:http://www.jianshu.com/p/b1b77d804254 感谢大神整理的这么详细 一.前言: 作为一名iOSer,把开发出来的Ap ...

  2. caffe中卷积层和pooling层计算下一层的特征map的大小

    pool层,其中ceil是向上取整函数 卷积层:

  3. sql 代码笔记

    1. if() 函数 推荐一个学习MySQL的网站  Study MySql

  4. Frameset框架

    总结一下.通过使用Frameset框架,可以在同一个浏览器窗口中显示不止一个页面. 先举个例子: <frameset rows="> <frame src="to ...

  5. 5806 NanoApe Loves Sequence Ⅱ(尺取法)

    传送门 NanoApe Loves Sequence Ⅱ Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/131072 K ...

  6. BZOJ4700: 适者

    先排序,枚举删一个点,在前面找出最优的另一个点,容易推出斜率方程,平衡树维护凸包. #include<bits/stdc++.h> using namespace std; typedef ...

  7. MySQL 代码开发注意事项----开发高性能的sql

    序言 一个服务或者一个程序,由 程序+数据组成.在数据这块,计算机中IO是比CPU要慢得多,为了减少IO,减少CPU运算.我们第一时间会想到索引,但索引为啥会提高效率,因为可以减少IO,在查询的时候不 ...

  8. JS中的动态表格

    写法一:(有点啰嗦) //--------------XML DOM--------------------------------------function addTR(){ //1.取三个框的值 ...

  9. Eclipse Android环境搭建

    1.先安装ADT,记得断开网络2.然后关闭Eclipse安装SDK,例如安装在C:\Users\Administrator\AppData\Local\Android\android-sdk3.重启E ...

  10. Mybatis学习总结(一)——入门基础

    一.Mybatis介绍 1.MyBatis是什么? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了go ...