function checkPlatform() { // #ifdef H5 type SystemInfo = { win: boolean, mac: boolean, xll: boolean }; let system = { win: false, mac: false, xll: false } as SystemInfo; let p = navigator.platform; system.win = p.indexOf("Win") == 0; system.mac = p.indexOf("Mac") == 0; system.x11 = p == "X11" || p.indexOf("Linux") == 0; if (system.win || system.mac || system.xll) { let ua = navigator.userAgent.toLowerCase(); if (ua.indexOf("micromessenger") > -1) { // 微信开发者工具下访问(注意微信开发者工具下无法唤起微信公众号支付) return "pc-weixin"; } else { return "pc"; } } else { if (p.indexOf("iPhone") > -1 || p.indexOf("iPad") > -1) { return "ios"; } else { return "android"; } } // #endif } /** * 获取当前H5所在的环境 */ function getH5Env() { // #ifdef H5 const ua = window.navigator.userAgent.toLowerCase(); const isWeixin = /micromessenger/i.test(ua); const isAlipay = /alipay/i.test(ua); const isMiniProgram = /miniprogram/i.test(ua); if (isWeixin) { if (isMiniProgram) { return "mp-weixin"; } else { return "h5-weixin"; } } else if (isAlipay) { if (isMiniProgram) { return "mp-alipay"; } else { return "h5-alipay"; } } return "h5"; // #endif } // json2的属性全部赋值给json1 function objectAssign(json1:UTSJSONObject,json2:UTSJSONObject) :UTSJSONObject{ for(let key in json2) { json1[key] = json2[key]; } return json1; } function getWeixinCode () : Promise{ return new Promise((resolve, reject) => { // #ifdef MP-WEIXIN uni.login({ provider: 'weixin', success(res) { resolve(res.code) }, fail(err) { reject(new Error('获取微信code失败')) } }) // #endif // #ifndef MP-WEIXIN resolve('') // #endif }) }; function getAlipayCode () : Promise{ return new Promise((resolve, reject) => { // #ifdef MP-ALIPAY uni.login({ provider: 'alipay', success(res) { resolve(res.code); }, fail(err) { reject(new Error('获取支付宝code失败,可能是没有关联appid或你的支付宝开发者工具还没有登录')); } }); // #endif // #ifndef MP-ALIPAY resolve(''); // #endif }); }; export { checkPlatform, getH5Env, objectAssign, getWeixinCode, getAlipayCode };