feat: 初始化
This commit is contained in:
commit
ef8081b838
64 files changed
+2137
No files matched your search
+239
@@ -0,0 +1,239 @@
|
||||
// 随机长度字符串
|
||||
const randomString = (len: number) => {
|
||||
len = len || 10;
|
||||
const chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
const maxPos = chars.length;
|
||||
let str = "";
|
||||
for (let i = 0; i < len; i++) {
|
||||
str += chars.charAt(Math.floor(Math.random() * maxPos));
|
||||
}
|
||||
return str;
|
||||
};
|
||||
|
||||
const checkVersion = function() {
|
||||
const u = navigator.userAgent;
|
||||
return {
|
||||
trident: u.indexOf("Trident") > -1, // IE内核
|
||||
presto: u.indexOf("Presto") > -1, // opera内核
|
||||
webKit: u.indexOf("AppleWebKit") > -1, // 苹果、谷歌内核
|
||||
gecko: u.indexOf("Gecko") > -1 && u.indexOf("KHTML") === -1, // 火狐内核
|
||||
mobile: !!u.match(/AppleWebKit.*Mobile.*/), // 是否为移动终端
|
||||
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), // ios终端
|
||||
android: u.indexOf("Android") > -1 || u.indexOf("Adr") > -1, // android终端
|
||||
iPhone: u.indexOf("iPhone") > -1, // 是否为iPhone或者QQHD浏览器
|
||||
iPad: u.indexOf("iPad") > -1, // 是否iPad
|
||||
webApp: u.indexOf("Safari") > -1, // 是否web应该程序,没有头部与底部
|
||||
weixin: u.indexOf("MicroMessenger") > -1, // 是否微信
|
||||
qq: u.indexOf("QQ") > -1, // 是否QQ
|
||||
tutuApp: u.match("toupaiApp"),
|
||||
app: u.match("toupaiApp") // 是否在app内
|
||||
};
|
||||
};
|
||||
|
||||
// 获取当前链接参数
|
||||
const getQueryString = function() {
|
||||
const url = window.location.href;
|
||||
const paramArr = url.slice(url.indexOf("?") + 1).split("&");
|
||||
const params: any = {};
|
||||
paramArr.map(param => {
|
||||
const [key, val] = param.split("=");
|
||||
params[key] = decodeURIComponent(val);
|
||||
});
|
||||
return params;
|
||||
};
|
||||
|
||||
const routeTypeConstant = {
|
||||
ROOM_PAGE: 1, //跳转房间页 传参(routerType): uid
|
||||
H5_PAGE: 2, // 跳转h5
|
||||
PURSE_PAGE: 3, //跳转钱包页
|
||||
RED_PAGE: 4, //xcRedColor
|
||||
RECHARGE_PAGE: 5, //跳转充值页
|
||||
PERSON_PAGE: 6, //跳转个人页 传参(routerType) : uid
|
||||
CAR_PAGE: 7, //跳转座驾 传参(routerType) : 0 (装扮商城) 或者 1 (车库) // 1是跳到我的座驾
|
||||
HEADWEAR_PAGE: 8, //跳转到头饰 传参(routerType) : 0 (装扮商城) 或者 1 (头饰库) // 1是跳到我的头饰
|
||||
SYSTEMMESSAGE_PAGE: 9, //系统消息
|
||||
FAMILY_PAGE: 10, //跳转到家族页面
|
||||
GROUP_PAGE: 11, //跳转到群组
|
||||
BACKGROUND_PAGE: 12, //跳转到背景设置 传参(routerType): 0 (装扮商城) 或者 1 (背景库)
|
||||
NEW_USER_PAGE: 13, //新秀玩友
|
||||
INVITE_FRIEND_PAGE: 14, //邀请好友
|
||||
PUBLICCHAT_PAGE: 15, //公聊大厅
|
||||
XCZ_ACCOUNT_PAGE: 16, //绑定 xcz 账号
|
||||
PHONE_NUM_PAGE: 17, //绑定手机号
|
||||
PAY_PWD_PAGE: 18, //设置支付密码
|
||||
WITHDRAW_RECORD_PAGE: 19, //提现记录页面
|
||||
RECOMMEND_CARD_PAGE: 20, //跳转到推荐卡仓库
|
||||
TASK_CENTER_PAGE: 27, // 跳转到任务中心就是萝卜不足也是跳那里
|
||||
TEACHER_PUPIL_PAGE: 28, //跳转到师徒页面入口
|
||||
SQUARE_PUBLISH: 51, // 发布动态
|
||||
FEEDPACK_PAGE: 52 //跳转反馈页面入口
|
||||
};
|
||||
|
||||
// 客户端方法
|
||||
const tools = {
|
||||
cookieUtils: {
|
||||
set: function(key:string|number, val:string|number, time:number) {
|
||||
const date = new Date();
|
||||
const expiresDays = time;
|
||||
date.setTime(date.getTime() + expiresDays * 24 * 3600 * 1000);
|
||||
document.cookie = key + "=" + val + ";expires=" + date.toUTCString();
|
||||
},
|
||||
|
||||
get: function(key:string) {
|
||||
const getCookie = document.cookie.replace(/[ ]/g, "");
|
||||
const arrCookie = getCookie.split(";");
|
||||
let val;
|
||||
for (let i = 0; i < arrCookie.length; i++) {
|
||||
const arr = arrCookie[i].split("=");
|
||||
if (key === arr[0]) {
|
||||
val = arr[1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
return val;
|
||||
},
|
||||
|
||||
delete: function(key:string) {
|
||||
const date = new Date();
|
||||
date.setTime(date.getTime() - 10000);
|
||||
document.cookie = key + "+v; expires =" + date.toUTCString();
|
||||
}
|
||||
},
|
||||
nativeUtils: {
|
||||
jumpAppointPage: function(type: string, val: string) {
|
||||
// routerType 跳转名称
|
||||
// routerVal 跳转需要传的参数
|
||||
const browser = checkVersion();
|
||||
const jumpObj:any = {};
|
||||
jumpObj.routerType = routeTypeConstant[type as keyof typeof routeTypeConstant];
|
||||
if (val) jumpObj.routerVal = val;
|
||||
|
||||
if (browser.app) {
|
||||
if (browser.ios) {
|
||||
if (type.indexOf("_") > -1) {
|
||||
window.webkit.messageHandlers.jumpAppointPage.postMessage(jumpObj);
|
||||
} else {
|
||||
if (val) {
|
||||
window.webkit.messageHandlers.type.postMessage(val);
|
||||
} else {
|
||||
window.webkit.messageHandlers.type.postMessage(null);
|
||||
}
|
||||
}
|
||||
} else if (browser.android) {
|
||||
// eslint-disable-next-line no-undef
|
||||
if (window.androidJsObj && typeof window.androidJsObj === "object") {
|
||||
if (type.indexOf("_") > -1) {
|
||||
window.androidJsObj.jumpAppointPage(JSON.stringify(jumpObj));
|
||||
} else {
|
||||
window.androidJsObj.jumpAppointPage(type);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
getUid: function() {
|
||||
const browser = checkVersion();
|
||||
let val;
|
||||
if (browser.app) {
|
||||
if (browser.ios) {
|
||||
val = tools.cookieUtils.get("uid");
|
||||
} else if (browser.android) {
|
||||
// eslint-disable-next-line no-undef
|
||||
if (window.androidJsObj && typeof window.androidJsObj === "object") {
|
||||
val = parseInt(window.androidJsObj.getUid());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const locate = getQueryString();
|
||||
if (!locate.uid && !locate.shareUid) {
|
||||
val = 901189;
|
||||
} else {
|
||||
if (locate.shareUid) {
|
||||
val = locate.shareUid;
|
||||
} else {
|
||||
val = locate.uid;
|
||||
}
|
||||
}
|
||||
}
|
||||
return val;
|
||||
},
|
||||
|
||||
getTicket: function() {
|
||||
const browser = checkVersion();
|
||||
let val;
|
||||
if (browser.app) {
|
||||
if (browser.ios) {
|
||||
val = window.webkit.messageHandlers.getTicket.postMessage(null);
|
||||
} else if (browser.android) {
|
||||
// eslint-disable-next-line no-undef
|
||||
if (window.androidJsObj && typeof window.androidJsObj === "object") {
|
||||
val = window.androidJsObj.getTicket();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
val = "app外";
|
||||
}
|
||||
return val;
|
||||
},
|
||||
getAppVersion: function() {
|
||||
const browser = checkVersion();
|
||||
let val;
|
||||
if (browser.app) {
|
||||
if (browser.ios) {
|
||||
val = window.webkit.messageHandlers.getAppVersion.postMessage(null);
|
||||
} else {
|
||||
val = window.androidJsObj.getAppVersion();
|
||||
}
|
||||
}
|
||||
return val;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const getMsgFromDevice = function() {
|
||||
const browser = checkVersion();
|
||||
let info = {};
|
||||
if (browser.app) {
|
||||
if (browser.ios) {
|
||||
window.webkit.messageHandlers.getDeviceId.postMessage(null);
|
||||
window.webkit.messageHandlers.getRoomUid.postMessage(null);
|
||||
} else if (browser.android) {
|
||||
// eslint-disable-next-line no-undef
|
||||
if (window.androidJsObj && typeof window.androidJsObj === "object") {
|
||||
window.info.deviceId = window.androidJsObj.getDeviceId();
|
||||
window.info.roomUid = window.androidJsObj.getRoomUid();
|
||||
}
|
||||
|
||||
window.info.appVersion = tools.nativeUtils.getAppVersion();
|
||||
}
|
||||
|
||||
window.info.uid = tools.nativeUtils.getUid();
|
||||
window.info.ticket = tools.nativeUtils.getTicket();
|
||||
window.info.appVersion = tools.nativeUtils.getAppVersion();
|
||||
} else {
|
||||
const params = getQueryString();
|
||||
if (
|
||||
params.debug === true ||
|
||||
params.debug === "true" ||
|
||||
location.hostname === "localhost"
|
||||
) {
|
||||
window.info.roomUid = 904860;
|
||||
window.info.uid = 1000009;
|
||||
window.info.deviceId = "afhksafhksajhfs1kjahsfkjsf0000aaaaaaaacaa";
|
||||
window.info.ticket =
|
||||
"eyJhbGciOiJIUzI1NiJ9.eyJ0aWNrZXRfdHlwZSI6bnVsbCwidWlkIjo5MTMzOSwidGlja2V0X2lkIjoiOGJmMTdlYmQtMTY4ZC00NTliLWI0NzUtMDU3M2Y1ZmM4MDQzIiwiZXhwIjozNjAwLCJjbGllbnRfaWQiOiJlcmJhbi1jbGllbnQifQ.MnKGEc6bSkyOkCbx26lib6J0koFDA2uiKnbwkhdk3MU";
|
||||
}
|
||||
}
|
||||
info = window.info;
|
||||
return info;
|
||||
};
|
||||
|
||||
export {
|
||||
randomString,
|
||||
checkVersion,
|
||||
tools,
|
||||
getQueryString,
|
||||
getMsgFromDevice,
|
||||
routeTypeConstant
|
||||
};
|
||||
Reference in new issue
Block a user