| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 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;
- }
|