这个不是很准,在浏览器种使用基本会以媒体查询到的浏览器宽高为基准,推荐在壳子里使用 you should not use this library in your HTML page and it's less reliable when used server-side (Node.js)
直接引用:CDN地址
使用npm/bower工具
import MobileDetect from 'mobile-detect'
[属性:方法](https://hgoebl.github.io/mobile-detect.js/doc/MobileDetect.html#phone)
is(key)
从userAgent, os, phone, tablet和其他有关userAgent的属性中判断是否有key这个字符串,返回布尔值
.mobile()
获取手机或平板电脑类型,若不是移动设备,则返回null。若检测不到设备,则会返回UnknownPhone或UnknownTablet或UnknownMobile。
.phone()
可能得到的值:iPhone, BlackBerry, HTC, Nexus, Dell, Motorola, Samsung, LG, Sony, Asus, NokiaLumia, Micromax, Palm, Vertu, Pantech, Fly, Wiko, iMobile, SimValley, Wolfgang, Alcatel, Nintendo, Amoi, INQ, GenericPhone
.tablet()
可能得到的值:iPad, NexusTablet, GoogleTablet, SamsungTablet, Kindle, SurfaceTablet, HPTablet, AsusTablet, BlackBerryTablet, HTCtablet, MotorolaTablet, NookTablet, AcerTablet, ToshibaTablet, LGTablet, FujitsuTablet, PrestigioTablet, LenovoTablet, DellTablet, YarvikTablet, MedionTablet, ArnovaTablet, IntensoTablet, IRUTablet, MegafonTablet, EbodaTablet, AllViewTablet, ArchosTablet, AinolTablet, NokiaLumiaTablet, SonyTablet, PhilipsTablet, CubeTablet, CobyTablet, MIDTablet, MSITablet, SMiTTablet, RockChipTablet, FlyTablet, bqTablet, HuaweiTablet, NecTablet, PantechTablet, BronchoTablet, VersusTablet, ZyncTablet, PositivoTablet, NabiTablet, KoboTablet, DanewTablet, TexetTablet, PlaystationTablet, TrekstorTablet, PyleAudioTablet, AdvanTablet, DanyTechTablet, GalapadTablet, MicromaxTablet, KarbonnTablet, AllFineTablet, PROSCANTablet, YONESTablet, ChangJiaTablet, GUTablet, PointOfViewTablet, OvermaxTablet, HCLTablet, DPSTablet, VistureTablet, CrestaTablet, MediatekTablet, ConcordeTablet, GoCleverTablet, ModecomTablet, VoninoTablet, ECSTablet, StorexTablet, VodafoneTablet, EssentielBTablet, RossMoorTablet, iMobileTablet, TolinoTablet, AudioSonicTablet, AMPETablet, SkkTablet, TecnoTablet, JXDTablet, iJoyTablet, FX2Tablet, XoroTablet, ViewsonicTablet, VerizonTablet, OdysTablet, CaptivaTablet, IconbitTablet, TeclastTablet, OndaTablet, JaytechTablet, BlaupunktTablet, DigmaTablet, EvolioTablet, LavaTablet, AocTablet, MpmanTablet, CelkonTablet, WolderTablet, MediacomTablet, MiTablet, NibiruTablet, NexoTablet, LeaderTablet, UbislateTablet, PocketBookTablet, KocasoTablet, HisenseTablet, Hudl, TelstraTablet, GenericTablet
.userAgent()
返回(第一个)检测到的用户代理。无则返回null。
可能得到的值:Chrome, Dolfin, Opera, Skyfire, Edge, IE, Firefox, Bolt, TeaShark, Blazer, Safari, WeChat, UCBrowser, baiduboxapp, baidubrowser, DiigoBrowser, Puffin, Mercury, ObigoBrowser, NetFront, GenericBrowser, PaleMoon
.userAgents()
返回检测到的所有用户代理。无则返回null。
## .os()
检测操作系统,返回操作系统字符串或者null。
可能得到的值:AndroidOS, BlackBerryOS, PalmOS, SymbianOS, WindowsMobileOS, WindowsPhoneOS, iOS, MeeGoOS, MaemoOS, JavaOS, webOS, badaOS, BREWOS
import MobileDetect from 'mobile-detect'
function getSystem(){
Array.prototype.contains = function(needle) {
for (i in this) {
if (this[i].indexOf(needle) > 0)
return i;
}
return -1;
}
var device_type = navigator.userAgent; //获取userAgent信息
console.log(device_type);
var md = new MobileDetect(device_type); //初始化mobile-detect
var os = md.os(); //获取系统
var mob = md.mobile()
var phone = md.phone()
var version = md.version()
var tablet= md.tablet()
// alert(os+'---'+mob+'~~~'+phone+'||'+tablet+'----'+version)
// alert(md.is('phone')) //返回布尔
// alert(md.is('tablet'))
alert(md.is('HTC'))//是不是HTC的牌子
alert(md.mobile('tablet')) //返回品牌
alert(md.mobile('phone'))
var model = "";
if (os == "iOS") { //ios系统的处理
os = +md.version("iPhone");
console.log(os)
model = md.mobile();
} else if (os == "AndroidOS") { //Android系统的处理
os = md.os() + md.version("Android");
var sss = device_type.split(";");
var i = sss.contains("Build/");
if (i > -1) {
debugger
model = sss[i].substring(0, sss[i].indexOf("Build/"));
}
}
// alert(os + "---" + model);//打印系统版本和手机型号
// document.write(model + '||' + os, '打印系统版本和手机型号')
return {os,model}
}
export const {os,model} = getSystem()