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.
shop-pc/middleware/browser.js

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('电脑');
}
}