UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

141 lines (136 loc) 4.74 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var env_env = require('../env/env.js'); var game_game = require('../game/game.js'); var url_url = require('../url/url.js'); var launchGame_helper = require('./helper.js'); require('../constant/gid.js'); require('@babel/runtime/helpers/typeof'); require('@babel/runtime/helpers/defineProperty'); require('../loader/little-loader.js'); require('../msdk/msdk.js'); function ddzScheme(_ref) { var gameId = _ref.gameId, seriesId = _ref.seriesId, uin = _ref.uin, env = _ref.env; var schemeHost = env.isIOS ? 'wx76fc280041c16519' : 'qqgame.hlddz.scheme'; var gameUrl = 'https://hlddz.huanle.qq.com/web/play.html?ADTAG=changshangsai&LoginType=Both&DefaultLoginType=WeChat&ParamType=OfflineMatch'; if (gameId || seriesId) { gameUrl += "&SeriesID=".concat(seriesId, "&GameID=").concat(gameId); } var schemeParam = "a=1&Operation=OfflineMatch&SeriesID=".concat(seriesId, "&GameID=").concat(gameId); if (uin) { gameUrl += "&uin=".concat(uin); schemeParam += "&uin=".concat(uin); } var schemeUrl = "".concat(schemeHost, "://startapp?").concat(schemeParam); return { schemeUrl: schemeUrl, schemeParam: schemeParam, gameUrl: gameUrl }; } /** * 拉起 DDZ * @param {object} params 拉起参数 * @param {string} params.seriesId series id * @param {string} params.gameId game id * @param {string} params.uin uin * @param {object} [params.context] 上下文,可传入组件实例 this * @param {object} [params.qrCodeLib] qrcode * @param {object} [params.dialogHandler] 弹窗 handler * @param {object} [params.otherDialogParams] 弹窗的其他参数 * @param {string} [params.wxJSLink] wx js link * @param {object} [params.env] 环境对象 * @returns Promise<boolean | number> * * @example * ```ts * launchDDZGameRoom({ * seriesId: '12', * gameId: '123', * uin: '222', * }) * ``` */ var launchDDZGameRoom = function launchDDZGameRoom(_ref2) { var _ref2$seriesId = _ref2.seriesId, seriesId = _ref2$seriesId === void 0 ? '' : _ref2$seriesId, _ref2$gameId = _ref2.gameId, gameId = _ref2$gameId === void 0 ? '' : _ref2$gameId, _ref2$uin = _ref2.uin, uin = _ref2$uin === void 0 ? '' : _ref2$uin, context = _ref2.context, qrCodeLib = _ref2.qrCodeLib, dialogHandler = _ref2.dialogHandler, otherDialogParams = _ref2.otherDialogParams, _ref2$wxJSLink = _ref2.wxJSLink, wxJSLink = _ref2$wxJSLink === void 0 ? 'https://res2.wx.qq.com/open/js/jweixin-1.6.0.js' : _ref2$wxJSLink, _ref2$env = _ref2.env, env = _ref2$env === void 0 ? env_env.initEnv() : _ref2$env; var _ddzScheme = ddzScheme({ gameId: gameId, seriesId: seriesId, uin: uin, env: env }), schemeUrl = _ddzScheme.schemeUrl, schemeParam = _ddzScheme.schemeParam, gameUrl = _ddzScheme.gameUrl; console.info('[launchDDZGameRoom] schemeUrl: ', schemeUrl); console.info('[launchDDZGameRoom] env: ', env); return new Promise(function (resolve, _reject) { if (env.isWeixin) { launchGame_helper.launchInWX({ wxJSLink: wxJSLink, schemeUrl: schemeUrl, schemeParam: schemeParam, launchParams: { gameId: gameId, seriesId: seriesId, uin: uin }, context: context, qrCodeLib: qrCodeLib, dialogHandler: dialogHandler, otherDialogParams: otherDialogParams, resolve: resolve, reject: function reject() { _reject(); window.location.href = launchGame_helper.getWxGameCircleUrl(game_game.GAME_MAP.HLDDZ.GID); } }); return; } var fakeLink = "fakelink://&Operation=OfflineMatch&SeriesID=".concat(seriesId, "&GameID=").concat(gameId); if (uin) { fakeLink += "&uin=".concat(uin); } var ddzInGame = window.sessionStorage.getItem('ddz_ingame'); if (ddzInGame === '1' || !url_url.getUrlPara('msdkEncodeParam') && env.isMsdk) { console.info('[launchDDZGameRoom] fakeLink: ', fakeLink); if (env.isIOS) { // @ts-ignore window.location = fakeLink; } else { confirm(fakeLink); } return; } if (env.isInGame) { var js = "{\"MsdkMethod\":\"WGSendMessageToNative\",\"MsgData\":\"".concat(fakeLink, "\"}"); setTimeout(function () { // 延迟关闭游戏webview if (env.isMsdk && typeof window.msdkShare === 'function' && typeof window.msdkCloseWebview === 'function') { window.msdkShare(js); window.msdkCloseWebview(); } }, 1); return; } window.location.href = gameUrl; resolve(1); }); }; exports.launchDDZGameRoom = launchDDZGameRoom;