mtl-js-sdk
Version:
118 lines (93 loc) • 2.75 kB
JavaScript
;
define(["uuid"], function (uuid) {
function getQuery() {
var res = {};
var serach = location.search;
if (!serach) {
serach = location.href.split("?").pop();
}
var str = decodeURIComponent(serach);
str = str.trim().replace(/^[?#&]/, "");
if (!str) {
return res;
}
str.split("&").forEach(function (strItem) {
if (strItem) {
var parts = strItem.split("=");
var 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) {
var key = "deviceID-" + code;
var deviceId = localStorage.getItem(key);
if (deviceId) {} else {
deviceId = uuid();
localStorage.setItem("deviceID-" + code, deviceId);
}
return deviceId;
}
function getLangCode() {
var userAgent = navigator.userAgent;
var lang;
if (userAgent.indexOf("youZoneLanguage") !== -1) {
lang = userAgent.split(" ").splice(-1, 1)[0].split("=")[1];
}
return lang || "zh";
}
var USER_INFO_KEY = "ncc_userinfo";
function getSTORKEY(appcode) {
return "".concat(USER_INFO_KEY, "_").concat(appcode);
}
function setLoginInfo(appcode, info) {
info.expiretime = getTime() + 2 * 60 * 60 * 1000;
localStorage.setItem(getSTORKEY(appcode), JSON.stringify(info || null));
}
function getLoginInfo() {
var clear = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var appcode = arguments.length > 1 ? arguments[1] : undefined;
var loginInfo = localStorage.getItem("".concat(USER_INFO_KEY, "_").concat(appcode)) || null;
loginInfo = JSON.parse(loginInfo);
if (clear && loginInfo) {
var _loginInfo = loginInfo,
expiretime = _loginInfo.expiretime,
_appcode = _loginInfo.appcode;
var nowTime = getTime();
if (appcode && appcode !== _appcode || nowTime > expiretime) {
localStorage.removeItem(getSTORKEY(appcode));
loginInfo = null;
}
}
return loginInfo;
}
var config = {
failCode: "fail"
};
function clearLoginStorage(appcode) {
localStorage.removeItem(getSTORKEY(appcode));
}
return {
getQuery: getQuery,
isObject: isObject,
getOrigin: getOrigin,
getTime: getTime,
getLangCode: getLangCode,
setLoginInfo: setLoginInfo,
clearLoginStorage: clearLoginStorage,
getLoginInfo: getLoginInfo,
getDeviceId: getDeviceId,
config: config
};
});