mtl-js-sdk
Version:
ynf-fw-mtl-api
117 lines (102 loc) • 2.76 kB
JavaScript
import { v4 as uuid } from 'uuid';
function getQuery() {
let res = {};
let serach = location.search;
if (!serach) {
serach = location.href.split("?").pop();
}
let str = ""
try {
str = decodeURIComponent(serach);
} catch (error) {
str = unescape(serach)
}
str = str.trim().replace(/^[?#&]/, "");
if (!str) {
return res;
}
str.split("&").forEach(strItem => {
if (strItem) {
let parts = strItem.split("=");
let partKey = parts[0],
partValue = parts[1] || "";
res[partKey] = partValue;
}
});
return res;
}
function getOrigin() {
return location.origin;
}
function isObject(obj) {
return Object.prototype.toString.call(obj) === "[object Object]";
}
function getTime() {
return new Date().getTime();
}
function getDeviceId(code) {
// let key = "deviceID-" + code;
let key = 'MtlNccDevceid'
let deviceId = localStorage.getItem(key);
if (deviceId) {
} else {
deviceId = uuid();
// localStorage.setItem("deviceID-" + code, deviceId);
localStorage.setItem(key, deviceId);
}
return deviceId;
}
function getLangCode() {
const reg = /youZoneLanguage=(\S*)/;
const userAgent = window.navigator.userAgent;
const langCodeMapData = {
zh: 'simpchn',
tw: 'tradchn',
en: 'english',
};
const currentLangCode = userAgent.match(reg) && userAgent.match(reg)[1] || 'zh';
return langCodeMapData[currentLangCode];
}
const USER_INFO_KEY = "ncc_userinfo";
function getSTORKEY(appcode) {
return `${USER_INFO_KEY}_${appcode}`;
}
function setLoginInfo(appcode, info) {
info.expiretime = getTime() + 2 * 60 * 60 * 1000;
localStorage.setItem(getSTORKEY(appcode), JSON.stringify(info || null));
}
function getLoginInfo(clear = false, appcode) {
let loginInfo = localStorage.getItem(`${USER_INFO_KEY}_${appcode}`) || null;
loginInfo = JSON.parse(loginInfo);
if (clear && loginInfo) {
let { expiretime, appcode: _appcode } = loginInfo;
let nowTime = getTime();
if ((appcode && appcode !== _appcode) || nowTime > expiretime) {
localStorage.removeItem(getSTORKEY(appcode));
loginInfo = null;
}
}
if (typeof loginInfo !== 'object' || loginInfo === null) {
return {}
} else {
return loginInfo
}
}
const config = {
failCode: "fail"
};
function clearLoginStorage(appcode) {
localStorage.removeItem(getSTORKEY(appcode));
}
export default {
getQuery,
isObject,
getOrigin,
getTime,
getLangCode,
setLoginInfo,
clearLoginStorage,
getLoginInfo,
getDeviceId,
config
};