前段通过js获取手机型号


需求:

用户登录后记录当前的手机型号并记录

插件:

  1. mobile-detect.js插件地址
  2. mobile-device-js插件地址

使用步骤:

  • 获取UA信息->根据安卓和IOS不同的处理
  • IOS再通过插件mobile-device-js去获取型号
  • 安卓通过解析UA信息去获取build之前的信息得到手机型号
//引入插件
<!--获取手机型号相关js-->
<script type="text/javascript" src="/mobile-detect.js"></script>
<!--配合这个js再去获取苹果手机的型号-->
<script type="text/javascript" src="/iphone-device.js"></script>
//获取userAgent信息
var user_agent = navigator.userAgent;
console.log(user_agent);
//初始化mobile-detect
var md = new MobileDetect(user_agent);
var os = md.os();//获取系统
var newMobile = "";
//ios系统的处理
if(os == "iOS"){
os = md.os() + md.version("iPhone");
ios = md.mobile();
//再通过iphone-device.js获取具体的苹果手机型号
newMobile = MobileDevice.getModels().join(' or ');
if(newMobile == 'unknown'){
newMobile = '';
}
}
//Android系统的处理
else if(os == "AndroidOS"){
os = md.os() + md.version("Android");
var sss = user_agent.split(";");
//判断UA里边有没有Build信息,通过这个拿到安卓的具体机型
var i = sss.contains("Build/");
if (i > -1) {
newMobile = sss[i].substring(0, sss[i].indexOf("Build/"));
}
}
//
//判断数组中是否包含某字符串(安卓机型获取用到)
Array.prototype.contains = function(needle) {
for (i in this) {
if (this[i].indexOf(needle) > 0)
return i;
}
return -1;
}
//写入数据库
if(newMobile){
$.get(
'/saveUserMobile.php',{uid:uid, mobile:newMobile},
function(json){
console.log(json.msg);
},'json'
);
}

总结

  • 通过mobile-detect.js插件获取UA信息
  • 安卓系统里通过Build/前一个信息拿到安卓的机型
  • IOS系统里在通过另一个插件mobile-device-js获取具体机型

前端通过js获取手机型号的更多相关文章

  1. JS获取手机型号和系统

    废话不多说,直接上源码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q ...

  2. js获取手机型号和手机操作系统版本号

    1.js 判断IOS版本号 先来观察 iOS 的 User-Agent 串: iPhone 4.3.2 系统:Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 l ...

  3. 史上最简单,js并获取手机型号

    原先获取不了苹果系列的型号,但转换思路,先推断是否是苹果,再用分辨率获取型号 //获取手机型号函数begin function getPhoneType(){  //正则,忽略大写和小写 var pa ...

  4. android如何获取手机型号和版本号

    public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView ...

  5. iOS获取手机型号,类似iphone 7这种 含swift和OC

    获取手机设备信息,如name.model.version等,但如果想获取具体的手机型号,如iphone5.5s这种,就需要如下这种 swift: func phonetype () -> Str ...

  6. android 获取手机型号,本机电话号码,SDK版本以及firmwarw版本号(即系统版本号)

    Android开发平台中,可通过TelephonyManager 获取本机号码. TelephonyManager phoneMgr=(TelephonyManager)this.getSystemS ...

  7. iOS获取手机型号,Swift获取手机型号(类似iphone 7这种,检测机型具体型号)

    获取手机设备信息,如name.model.version等, 但如果想获取具体的手机型号,如iphone5.5s这种,就需要如下这种(含Swift和OC两种写法) Swift建议添加到extensio ...

  8. iOS获取手机型号、iOS获取当前app的名称和版本号

    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; CFShow(infoDictionary); // ap ...

  9. Android编程获取手机型号,本机电话号码,sdk版本号及firmware版本号号(即系统版本号号)

    Android开发平台中,可通过TelephonyManager 获取本机号码. TelephonyManager phoneMgr=(TelephonyManager)this.getSystemS ...

随机推荐

  1. mac 登陆phpmyadmin 提示 mysqli_real_connect(): (HY000/2002): No such file or directory

    我们将下载的phpmyadmin 放在apache目录中,进入phpmyadmin目录, 首先将这个目录中的配置文件改名 sudo mv config.sample.inc.php config.in ...

  2. PullToRefresh原理解析,pulltorefresh解析

    PullToRefresh原理解析,pulltorefresh解析 代码届有一句非常经典的话:"不要重复制造轮子",多少人看过之后便以此为本,把鲁迅的"拿来主义" ...

  3. Java知识体系思维导图

    Java知识体系,为方便预览,将思维导图上传至印象笔记,博客园直接上传图片受限于图片大小,暂时接触这么多,待以后丰富 https://app.yinxiang.com/shard/s24/nl/272 ...

  4. js 检测链接是否有效(包含跨域)

    const checkUrl = function (url) { const promise = new Promise(function (resolve, reject) { if (!url) ...

  5. 网络爬虫requests-bs4-re-1

    最近了解了爬虫,嗯--------,有时候会搞得有点头晕. 跟着线上老师实现了两个实例.可以用python下载源代码玩玩,爬淘宝的很刺激,虽然违反了ROBOTS协议. GIT地址

  6. 分区工具parted的使用方法

    一.         parted的用途及说明 概括使用说明: parted用于对磁盘(或RAID磁盘)进行分区及管理,与fdisk分区工具相比,支持2TB以上的磁盘分区,并且允许调整分区的大小.   ...

  7. vue使用install函数把组件做成插件方便全局调用

    在vue项目中,我们可以自定义组件,像element-ui一样使用Vue.use()方法来使用,具体实现方法: 1.首先新建一个Cmponent.vue文件 // Cmponent.vue <t ...

  8. windows下搭建基于nginx的rtmp服务器

    https://blog.csdn.net/fireroll/article/details/51985688 Windows机器配置:Windows7旗舰版 64位Intel(R) Core(TM) ...

  9. python 经典排序算法

    python 经典排序算法 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存.常见的内部排序算 ...

  10. struts2之Action与JSP相互数据传递

    package com.loaderman.crm.action; import com.loaderman.crm.entity.User; import com.loaderman.crm.ser ...