t-comm
Version:
专业、稳定、纯粹的工具库
174 lines (167 loc) • 6.69 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
var env_env = require('../env/env.js');
var game_game = require('../game/game.js');
var loader_littleLoader = require('../loader/little-loader.js');
var msdk_msdk = require('../msdk/msdk.js');
var url_url = require('../url/url.js');
require('../constant/gid.js');
require('@babel/runtime/helpers/typeof');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
var LAUNCH_GP_SOURCE_MAP = {
NORMAL: 6,
SUBWAY_MODE: 7
};
var GAME_SCHEME_PREFIX_MAP = {
GP: 'pubgmhd1106467070://?',
GP_IN_HELPER: 'wxc4c0253df149f02d://?',
GP_TRIAL: 'pubgmhd1107050784://?',
GN: 'gnyx1110329808://?type=Contest&',
MJ: 'happymjscheme://matchFrom=1?'
};
var DEFAULT_WX_JS_SDK = 'https://res.wx.qq.com/open/js/jweixin-1.4.0.js';
var gidAppIdMap = _defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"]({}, game_game.GAME_MAP.HLDDZ.GID, 'wx76fc280041c16519'), game_game.GAME_MAP.MJ.GID, 'wx3bef52104e238bff'), game_game.GAME_MAP.NARUTO.GID, 'wx82dd7436af5db835'), game_game.GAME_MAP.GP.GID, 'wxc4c0253df149f02d');
function getWxGameCircleUrl(gid) {
var appId = gidAppIdMap[gid];
return " https://game.weixin.qq.com/cgi-bin/h5/static/gamecenter/detail.html?appid=".concat(appId, "&ssid=39&autoinstall=1&type=1#wechat_redirect");
}
function getGPSchemeParam(roomId, roomPwd, options) {
var time = Math.floor(new Date().getTime() / 60000);
var schemeParam = "rmid:".concat(roomId, ",rmpw:").concat(roomPwd, ",t:").concat(time);
if (options === null || options === void 0 ? void 0 : options.source) {
schemeParam += ",source:".concat((options === null || options === void 0 ? void 0 : options.source) || '');
}
return schemeParam;
}
function getQRcodeUrl(launchParams) {
var qrCodeUrl = url_url.composeUrlQuery(window.location.href, Object.assign({
enterGame: true
}, launchParams || {}));
return qrCodeUrl;
}
function launchInWX(_ref) {
var wxJSLink = _ref.wxJSLink,
schemeUrl = _ref.schemeUrl,
schemeParam = _ref.schemeParam,
_ref$launchParams = _ref.launchParams,
launchParams = _ref$launchParams === void 0 ? {} : _ref$launchParams,
context = _ref.context,
qrCodeLib = _ref.qrCodeLib,
dialogHandler = _ref.dialogHandler,
otherDialogParams = _ref.otherDialogParams,
resolve = _ref.resolve,
reject = _ref.reject;
loader_littleLoader.loader(wxJSLink, function () {
var invokeWXBridge = function invokeWXBridge() {
window.WeixinJSBridge.invoke('launchApplication', {
schemeUrl: schemeUrl,
extInfo: schemeParam,
parameter: schemeParam
}, function (res) {
console.info('[launchCore wx] res: ', res);
if (res.err_msg.indexOf('ok') === -1) {
if ((res.err_msg.indexOf('permission') > -1 || res.err_msg.indexOf('access_denied') > -1) && qrCodeLib && dialogHandler) {
showQRcode({
launchParams: launchParams,
context: context,
qrCodeLib: qrCodeLib,
dialogHandler: dialogHandler,
otherDialogParams: otherDialogParams
});
} else {
reject(res);
}
} else {
resolve(res);
}
});
};
// 检查 WeixinJSBridge 是否已就绪
if (typeof window.WeixinJSBridge !== 'undefined' && typeof window.WeixinJSBridge.invoke === 'function') {
invokeWXBridge();
} else {
// 等待 WeixinJSBridgeReady 事件
document.addEventListener('WeixinJSBridgeReady', function () {
invokeWXBridge();
}, false);
}
});
}
function showQRcode(_ref2) {
var launchParams = _ref2.launchParams,
context = _ref2.context,
qrCodeLib = _ref2.qrCodeLib,
dialogHandler = _ref2.dialogHandler,
_ref2$otherDialogPara = _ref2.otherDialogParams,
otherDialogParams = _ref2$otherDialogPara === void 0 ? {} : _ref2$otherDialogPara;
var qrCodeUrl = getQRcodeUrl(launchParams || {});
console.info('[showQRcode] url', qrCodeUrl);
if (!dialogHandler || !qrCodeLib) return;
qrCodeLib.toDataURL(qrCodeUrl).then(function (url) {
dialogHandler.show(Object.assign({
context: context,
title: '提示',
content: '请长按二维码再次打开链接并进入比赛',
confirmText: '关闭',
cancelText: '',
src: url
}, otherDialogParams || {}));
console.info(url);
})["catch"](function (err) {
console.error(err);
});
}
function launchCore(_ref3) {
var _ref3$launchParams = _ref3.launchParams,
launchParams = _ref3$launchParams === void 0 ? {} : _ref3$launchParams,
schemeParam = _ref3.schemeParam,
context = _ref3.context,
qrCodeLib = _ref3.qrCodeLib,
dialogHandler = _ref3.dialogHandler,
otherDialogParams = _ref3.otherDialogParams,
_ref3$schemePrefix = _ref3.schemePrefix,
schemePrefix = _ref3$schemePrefix === void 0 ? '' : _ref3$schemePrefix,
_ref3$wxJSLink = _ref3.wxJSLink,
wxJSLink = _ref3$wxJSLink === void 0 ? 'https://res.wx.qq.com/open/js/jweixin-1.4.0.js' : _ref3$wxJSLink,
_ref3$env = _ref3.env,
env = _ref3$env === void 0 ? env_env.initEnv() : _ref3$env;
// const time = Math.floor(new Date().getTime() / 60000);
// const schemeParam = `rmid:${roomId},rmpw:${roomPwd},t:${time}`;
var schemeUrl = "".concat(schemePrefix).concat(schemeParam);
console.info('[launchCore schemeUrl]', schemeUrl);
return new Promise(function (resolve, reject) {
if (env.isWeixin) {
launchInWX({
wxJSLink: wxJSLink,
schemeUrl: schemeUrl,
schemeParam: schemeParam,
launchParams: launchParams,
context: context,
qrCodeLib: qrCodeLib,
dialogHandler: dialogHandler,
otherDialogParams: otherDialogParams,
resolve: resolve,
reject: reject
});
return;
}
if (env.isInGame) {
window.location.href = schemeUrl;
setTimeout(function () {
msdk_msdk.closeMsdkWebview(env);
}, 1000);
return;
}
window.location.href = schemeUrl;
resolve(1);
});
}
exports.DEFAULT_WX_JS_SDK = DEFAULT_WX_JS_SDK;
exports.GAME_SCHEME_PREFIX_MAP = GAME_SCHEME_PREFIX_MAP;
exports.LAUNCH_GP_SOURCE_MAP = LAUNCH_GP_SOURCE_MAP;
exports.getGPSchemeParam = getGPSchemeParam;
exports.getWxGameCircleUrl = getWxGameCircleUrl;
exports.launchCore = launchCore;
exports.launchInWX = launchInWX;