前段通過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獲取具體機型