const ua = navigator.userAgent.toLowerCase();
const isInWeibo = () => / Weibo /i.test(ua); //微博 ture
const isInWeixin = () => /MicroMessenger/i.test(ua); //微信内置浏览器
const isInQQ = () => /QQ/i.test(ua); //qq内置浏览器
const isAndroid = () => /Android/i.test(ua);
const isDingTalk = () => /DingTalk/i.test(ua);
const isUCBrowser = () => /UCBrowser/i.test(ua);
const isBaidu = () => /Baidu//i.test(ua);
获取浏览类型与系统的函数
// 各主流浏览器
function getBrowser() {
var u = navigator.userAgent;
var bws = [{
name: 'sgssapp',
it: /sogousearch/i.test(u)
}, {
name: 'wechat',
it: /MicroMessenger/i.test(u)
}, {
name: 'weibo',
it: !!u.match(/Weibo/i)
}, {
name: 'uc',
it: !!u.match(/UCBrowser/i) || u.indexOf(' UBrowser') > -1
}, {
name: 'sogou',
it: u.indexOf('MetaSr') > -1 || u.indexOf('Sogou') > -1
}, {
name: 'xiaomi',
it: u.indexOf('MiuiBrowser') > -1
}, {
name: 'baidu',
it: u.indexOf('Baidu') > -1 || u.indexOf('BIDUBrowser') > -1
}, {
name: '360',
it: u.indexOf('360EE') > -1 || u.indexOf('360SE') > -1
}, {
name: '2345',
it: u.indexOf('2345Explorer') > -1
}, {
name: 'edge',
it: u.indexOf('Edge') > -1
}, {
name: 'ie11',
it: u.indexOf('Trident') > -1 && u.indexOf('rv:11.0') > -1
}, {
name: 'ie',
it: u.indexOf('compatible') > -1 && u.indexOf('MSIE') > -1
}, {
name: 'firefox',
it: u.indexOf('Firefox') > -1
}, {
name: 'safari',
it: u.indexOf('Safari') > -1 && u.indexOf('Chrome') === -1
}, {
name: 'qqbrowser',
it: u.indexOf('MQQBrowser') > -1 && u.indexOf(' QQ') === -1
}, {
name: 'qq',
it: u.indexOf('QQ') > -1
}, {
name: 'chrome',
it: u.indexOf('Chrome') > -1 || u.indexOf('CriOS') > -1
}, {
name: 'opera',
it: u.indexOf('Opera') > -1 || u.indexOf('OPR') > -1
}];
for (var i = 0; i < bws.length; i++) {
if (bws[i].it) {
return bws[i].name;
}
}
return 'other';
}
// 系统区分
function getOS() {
var u = navigator.userAgent;
if (!!u.match(/compatible/i) || u.match(/Windows/i)) {
return 'windows';
} else if (!!u.match(/Macintosh/i) || u.match(/MacIntel/i)) {
return 'macOS';
} else if (!!u.match(/iphone/i) || u.match(/Ipad/i)) {
return 'ios';
} else if (!!u.match(/android/i)) {
return 'android';
} else {
return 'other';
}
}
前端H5用js判断页面在IOS,Android,微信,pc端打开的方法
// 判读是否是IOS打开
isIos: function () {
var agent = navigator.userAgent;
var isiOS = !!agent.match(/iPhone|mac|iPod|iPad|ios/i);
return isiOS
},
// 判读是否是android打开
isIos: function () {
var agent = navigator.userAgent;
var isiOS = agent.match(/(Android)\s+([\d.]+)/);
return isiOS
},
判读是否是PC打开
isPc: function () {
var plat = navigator.platform;
var win = plat.indexOf(“Win”) == 0;
var mac = plat.indexOf(“Mac”) == 0;
if (win || mac) {
return true
} else {
return false
}
} ,
判读是否是微信中打开
isWeiXin: function () {
var ua = window.navigator.userAgent.toLowerCase();
if((/MicroMessenger/i).test(ua)){
return true;
}else{
return false;
}
},
js判断H5页面是否是在QQ\UC浏览器中打开
//js判断H5页面是否是在QQ\UC浏览器中打开
var u = navigator.appVersion;
var uc = u.split('UCBrowser/').length > 1 ? 1 : 0;
var qq = u.split('MQQBrowser/').length > 1 ? 2 : 0;
var wx = ((u.match(/MicroMessenger/i)) && (u.match(/MicroMessenger/i).toString().toLowerCase() == 'micromessenger'));
//注意判断是QQ浏览器还需排除微信打开环境,即:
if(qq && !wx){
return 1;
}else{
return 0;
}
//判断是否是UC浏览器打开
if(uc){
return 1;
}else{
return 0;
}
应用场景:
调用浏览器自带分享功能实现第三方分享
网友评论