export default function({ req }, inject) { console.log("devicetype..............."); let deviceType = {}; deviceType.ios = false; deviceType.android = false; deviceType.pc = false; deviceType.ios = false; deviceType.wx = false; deviceType.app = false; deviceType.spider = false; let cookie = "", ua = ""; /** 通过UA判断设备类型 **/ if (req && req.headers) { ua = (req && req.headers && req.headers["user-agent"]) || ""; } else if (window && window.navigator) { ua = window.navigator.userAgent; } if (/(iPhone|iPad|iPod|iOS)/i.test(ua)) { deviceType.ios = true; } else if (/(Android)/i.test(ua)) { deviceType.android = true; } else { deviceType.pc = true; } /** 通过cookie 判断是不是APP **/ if (req && req.headers) { cookie = req.headers.cookie || ""; } else if (document) { cookie = document.cookie; } deviceType.app = judgeHasX_APP(cookie); /** 判断是不是 微信 **/ if (/(MicroMessenger)/i.test(ua)) { deviceType.wx = true; } /** 判断是不是 蜘蛛 **/ if (/(spider)/i.test(ua)) { deviceType.spider = true; } deviceType.isMobile = function() { return deviceType.ios || deviceType.android; }; deviceType.isPC = function() { return deviceType.pc; }; deviceType.isWx = function() { return deviceType.wx; }; function judgeHasX_APP(cookiedata) { var cookies = cookiedata ? cookiedata.split("; ") : []; var i = 0; for (; i < cookies.length; i++) { var parts = cookies[i].split("="); var name = parts[0].replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent); if (name === "x_app") { return true; } } return false; } inject && inject("deviceType", deviceType); return deviceType; }