vue-auto-track
Version:
auto tracking for vue
71 lines (66 loc) • 1.88 kB
JavaScript
import MobileDetect from "mobile-detect";
import { ENV_H5 } from "./global";
export function getInfoFromIp(env = `h5`) {
/**
* query ip
* city 城市名称
*/
return new Promise((resolve, reject) => {
if (env === ENV_H5) {
const newScript = document.createElement(`script`);
newScript.onload = () => {
let { cip, cname } = returnCitySN;
resolve({ query: cip, city: cname });
};
newScript.src = `https://pv.sohu.com/cityjson?ie=utf-8`;
document.body.appendChild(newScript);
} else {
uni.request({
url: `https://diting-buriedPoint.gw.zt-express.com/getIpLocation`,
success: function (e) {
let { province = "", city = "" } = e.data.result;
resolve({ city: province + city, query: "" });
},
});
}
});
}
export function getSystemInfo(env = `h5`) {
/**
* brand 品牌设备
* model 设备型号
* version 版本号
* system 操作系统及版本
* platform weixin_app
*/
return new Promise((resolve, reject) => {
if (env === ENV_H5) {
let md = new MobileDetect(navigator.userAgent);
let os = md.os(); // 获取系统
let version = ``; // 获取版本
let model = ``; // 品牌
if (os == `iOS`) {
// ios系统的处理
version = md.version(`iPhone`);
model = md.mobile();
} else if (os == `AndroidOS`) {
version = md.version(`Android`);
model = md.mobile();
}
resolve({
brand: model,
system: os,
model,
version,
platform: `h5`,
});
} else {
uni.getSystemInfo({
success: function (res) {
let { brand, model, version, system, platform, SDKVersion } = res;
resolve({ brand, model, version, system, platform, SDKVersion });
},
});
}
});
}