You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
3.7 KiB
127 lines
3.7 KiB
import ENV from '@/plugins/config/env.js';
|
|
export default function (context) {
|
|
context.userAgent = process.server ? context.req.headers['user-agent'] : navigator.userAgent;
|
|
// 各主流浏览器
|
|
function getBrowser() {
|
|
var u = context.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: 'edg',
|
|
it: u.indexOf('Edg') > -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';
|
|
}
|
|
|
|
var os = (function () {
|
|
var ua = context.userAgent,
|
|
isWindowsPhone = /(?:Windows Phone)/.test(ua),
|
|
isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone,
|
|
isAndroid = /(?:Android)/.test(ua),
|
|
isFireFox = /(?:Firefox)/.test(ua),
|
|
isChrome = /(?:Chrome|CriOS)/.test(ua),
|
|
isTablet =
|
|
/(?:iPad|PlayBook)/.test(ua) ||
|
|
(isAndroid && !/(?:Mobile)/.test(ua)) ||
|
|
(isFireFox && /(?:Tablet)/.test(ua)),
|
|
isPhone = /(?:iPhone)/.test(ua) && !isTablet,
|
|
isPc = !isPhone && !isAndroid && !isSymbian;
|
|
return {
|
|
isTablet: isTablet,
|
|
isPhone: isPhone,
|
|
isAndroid: isAndroid,
|
|
isPc: isPc,
|
|
isChrome: isChrome,
|
|
};
|
|
})();
|
|
|
|
if (os.isAndroid || os.isPhone) {
|
|
console.log('手机');
|
|
let url = ENV.h5_url
|
|
context.redirect(url);
|
|
} else if (os.isTablet) {
|
|
console.log('平板');
|
|
} else if (os.isPc) {
|
|
console.log('电脑');
|
|
}
|
|
}
|