UNPKG

t-comm

Version:

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

404 lines (401 loc) 14.6 kB
import { initEnv } from '../env/env.mjs'; import { merge as _merge } from '../lodash-mini/merge.mjs'; import { GAME_MAP } from './config.mjs'; import { launchApp } from './core.mjs'; import '../tslib.es6-096fffdd.js'; import '../loader/little-loader.mjs'; import '../msdk/msdk.mjs'; import '@babel/runtime/helpers/typeof'; // type ILaunchAppParams = any; function getScheme(options, gid, key) { if (key && options[key]) { return options[key]; } var schemeMap = options.SCHEME_MAP || {}; if (!schemeMap[gid]) { return ''; } var defaultValue = schemeMap[gid]["default"] || ''; if (!key) { return defaultValue; } return schemeMap[gid][key] || defaultValue; } /** * @description 拉起王者荣耀游戏 * @param {Object} options 可选,覆盖内部默认配置,参考 launchApp 的参数要求 */ function gotoWzGame(options) { if (options === void 0) { options = {}; } var apkName = GAME_MAP.PVP.APK_NAME; var dialogTip = '你还没有安装游戏哦,请安装“王者荣耀”,玩游戏累积战绩领奖'; var params = _merge({}, { // 微信内 weixinScheme: getScheme(options, GAME_MAP.PVP.GID, 'weixinScheme'), // 手Q内拉起 qqAppScheme: getScheme(options, GAME_MAP.PVP.GID, 'qqAppScheme'), qqAppPackageName: apkName, // 原生浏览器 browserAppScheme: getScheme(options, GAME_MAP.PVP.GID, 'browserAppScheme'), browserApkScheme: getScheme(options, GAME_MAP.PVP.GID, 'browserApkScheme'), // 唤起失败处理开启优先级:跳转下载 > 跳转链接 > 弹窗提示 openMarket: false, needRedirect: false, appMarketUrl: 'https://itunes.apple.com/cn/app/id989673964', apkMarketUrl: "market://details?id=".concat(apkName), failTips: dialogTip }, options); launchApp(params); } /** * @description 拉起王者荣耀游戏微社区 * @param {Object} options 必须,参数对象。除 pageUrl 外,其余参数可选,参考 launchApp 的参数要求 * @param {String} options.pageUrl 必须,内置落地页。 */ function gotoWzCommunity(options) { if (options === void 0) { options = {}; } var env = initEnv(); var pageUrl = options.pageUrl || ''; if (pageUrl === '') { console.error('参数 pageUrl 为空'); return; } // 仅针对安卓,对带参数的链接二次编码 if (env.isAndroid) { pageUrl = encodeURIComponent(pageUrl); } var apkName = GAME_MAP.PVP.APK_NAME; var scheme = getOpenGameScheme(options, GAME_MAP.PVP.GID, pageUrl); var params = _merge({}, { isUseSchemeParams: true, // 微信内 weixinScheme: scheme, // 手Q内拉起 qqAppScheme: scheme, qqAppPackageName: apkName, // 原生浏览器 browserAppScheme: scheme, browserApkScheme: scheme, // 唤起失败处理开启优先级:跳转下载 > 跳转链接 > 弹窗提示 openMarket: false, needRedirect: false, appMarketUrl: 'https://itunes.apple.com/cn/app/id989673964', apkMarketUrl: "market://details?id=".concat(apkName), failTips: '前往“王者荣耀-社区-发现-生活福利”,玩游戏累积战绩领奖' }, options); launchApp(params); } /** * @description 拉起和平精英游戏 * @param {Object} options 可选,覆盖内部默认配置,参考 launchApp 的参数要求 */ function gotoGPGame(options) { if (options === void 0) { options = {}; } var pageUrl = options.pageUrl || ''; var scheme = getOpenGameScheme(options, GAME_MAP.GP.GID, pageUrl); var qqAppPackageName = GAME_MAP.GP.APK_NAME; var params = _merge({}, { isUseSchemeParams: true, // 微信内 weixinScheme: scheme, // 手Q内拉起 qqAppScheme: scheme, qqAppPackageName: qqAppPackageName, // 原生浏览器 browserAppScheme: scheme, browserApkScheme: scheme, // 唤起失败处理开启优先级:跳转下载 > 跳转链接 > 弹窗提示 openMarket: false, needRedirect: false, appMarketUrl: 'https://itunes.apple.com/cn/app/id1321803705', apkMarketUrl: "market://details?id=".concat(qqAppPackageName), failTips: '你还没有安装游戏哦,请安装“和平精英”,玩游戏累积战绩领奖' }, options); launchApp(params); } /** * @description 拉起欢乐斗地主游戏 * @param {Object} options 可选,覆盖内部默认配置,参考 launchApp 的参数要求 */ function gotoDzGame(options) { if (options === void 0) { options = {}; } var pageUrl = options.pageUrl || ''; var scheme = getOpenGameScheme(options, GAME_MAP.HLDDZ.GID, pageUrl); var qqAppPackageName = GAME_MAP.HLDDZ.APK_NAME; var params = _merge({}, { isUseSchemeParams: true, // 微信内 weixinScheme: scheme, // 手Q内拉起 qqAppScheme: scheme, qqAppPackageName: qqAppPackageName, // 原生浏览器 browserAppScheme: scheme, browserApkScheme: scheme, // 唤起失败处理开启优先级:跳转下载 > 跳转链接 > 弹窗提示 openMarket: false, needRedirect: false, appMarketUrl: 'https://itunes.apple.com/cn/app/id446324234', apkMarketUrl: "market://details?id=".concat(qqAppPackageName), failTips: '可以微信搜索“欢乐斗地主”小程序,玩游戏累积战绩领奖' }, options); launchApp(params); } /** * 拉起欢乐麻将游戏 * @param {Object} options 可选,覆盖内部默认配置,参考 launchApp 的参数要求 */ function gotoMJGame(options) { if (options === void 0) { options = {}; } var scheme = getOpenGameScheme(options, GAME_MAP.MJ.GID); var qqAppScheme = scheme; var qqAppPackageName = GAME_MAP.MJ.APK_NAME; var params = _merge({}, { // 微信内 weixinScheme: scheme, // 手Q内拉起 qqAppScheme: qqAppScheme, qqAppPackageName: qqAppPackageName, // 原生浏览器 browserAppScheme: scheme, browserApkScheme: scheme, // 唤起失败处理开启优先级:跳转下载 > 跳转链接 > 弹窗提示 openMarket: false, needRedirect: false, appMarketUrl: 'https://itunes.apple.com/cn/app/id689180123', apkMarketUrl: "market://details?id=".concat(qqAppPackageName), failTips: '你还没有安装游戏哦,请安装“欢乐麻将”,玩游戏累积战绩领奖' }, options); launchApp(params); } /** * @description 拉起英雄联盟手游 * @param {Object} options 可选,覆盖内部默认配置,参考 launchApp 的参数要求 */ function gotoLOLMGame(options) { if (options === void 0) { options = {}; } var scheme = getLOLMDeeplinkScheme(options, options.pageUrl || ''); var qqAppPackageName = GAME_MAP.LOLM.APK_NAME; var params = _merge({}, { isUseSchemeParams: true, // 微信内 weixinScheme: scheme, // 手Q内拉起 qqAppScheme: scheme, qqAppPackageName: qqAppPackageName, // 原生浏览器 browserAppScheme: scheme, browserApkScheme: scheme, // 唤起失败处理开启优先级:跳转下载 > 跳转链接 > 弹窗提示 openMarket: false, needRedirect: false, appMarketUrl: 'https://apps.apple.com/cn/app/id1455054000', apkMarketUrl: "market://details?id=".concat(qqAppPackageName), failTips: '你还没有安装游戏哦,请安装“英雄联盟手游”,玩游戏累积战绩领奖' }, options); launchApp(params); } /** * 拉起天龙八部游戏 * @param {Object} options 可选,覆盖内部默认配置,参考 launchApp 的参数要求 */ function gotoTLBBGame(options) { if (options === void 0) { options = {}; } var scheme = getOpenGameScheme(options, GAME_MAP.TLBB.GID); var qqAppScheme = scheme; var qqAppPackageName = GAME_MAP.TLBB.APK_NAME; var params = _merge({}, { // 微信内 weixinScheme: scheme, // 手Q内拉起 qqAppScheme: qqAppScheme, qqAppPackageName: qqAppPackageName, // 原生浏览器 browserAppScheme: scheme, browserApkScheme: scheme, // 唤起失败处理开启优先级:跳转下载 > 跳转链接 > 弹窗提示 openMarket: false, needRedirect: false, appMarketUrl: 'https://itunes.apple.com/cn/app/id1132257692', apkMarketUrl: "market://details?id=".concat(qqAppPackageName), failTips: '你还没有安装游戏哦,可以微信搜索“天龙八部”游戏' }, options); launchApp(params); } /** * 拉起天涯明月刀游戏 * @param {Object} options 可选,覆盖内部默认配置,参考 launchApp 的参数要求 */ function gotoTDGame(options) { if (options === void 0) { options = {}; } var scheme = getOpenGameScheme(options, GAME_MAP.TY.GID); var qqAppScheme = scheme; var qqAppPackageName = GAME_MAP.TY.APK_NAME; var params = _merge({}, { // 微信内 weixinScheme: scheme, // 手Q内拉起 qqAppScheme: qqAppScheme, qqAppPackageName: qqAppPackageName, // 原生浏览器 browserAppScheme: scheme, browserApkScheme: scheme, // 唤起失败处理开启优先级:跳转下载 > 跳转链接 > 弹窗提示 openMarket: false, needRedirect: false, appMarketUrl: '', apkMarketUrl: "market://details?id=".concat(qqAppPackageName), failTips: '你还没有安装游戏哦,请安装“天涯明月刀”,玩游戏累积战绩领奖' }, options); launchApp(params); } /** * @description 拉起qq炫舞游戏 * @param {Object} options 可选,覆盖内部默认配置,参考 launchApp 的参数要求 */ function gotoX5MGame(options) { if (options === void 0) { options = {}; } var pageUrl = options.pageUrl || ''; var scheme = getOpenGameScheme(options, GAME_MAP.X5M.GID, pageUrl); var qqAppPackageName = GAME_MAP.X5M.APK_NAME; var params = _merge({}, { isUseSchemeParams: false, // 微信内 weixinScheme: scheme, // 手Q内拉起 qqAppScheme: scheme, qqAppPackageName: qqAppPackageName, // 原生浏览器 browserAppScheme: scheme, browserApkScheme: scheme, // 唤起失败处理开启优先级:跳转下载 > 跳转链接 > 弹窗提示 openMarket: false, needRedirect: false, appMarketUrl: 'https://apps.apple.com/cn/app/id1219233424', apkMarketUrl: "market://details?id=".concat(qqAppPackageName), failTips: '可以微信搜索“QQ炫舞”小程序,玩游戏累积战绩领奖' }, options); launchApp(params); } function gotoNarutoGame(options) { if (options === void 0) { options = {}; } var scheme = getScheme(options, GAME_MAP.NARUTO.GID); var qqAppPackageName = GAME_MAP.NARUTO.APK_NAME; var params = _merge({}, { isUseSchemeParams: false, // 微信内 weixinScheme: scheme, // 手Q内拉起 qqAppScheme: scheme, qqAppPackageName: qqAppPackageName, // 原生浏览器 browserAppScheme: scheme, browserApkScheme: scheme, // 唤起失败处理开启优先级:跳转下载 > 跳转链接 > 弹窗提示 openMarket: false, needRedirect: false, appMarketUrl: 'https://apps.apple.com/cn/app/id955396648', apkMarketUrl: "market://details?id=".concat(qqAppPackageName), failTips: '可以微信搜索“火影忍者”小程序,玩游戏累积战绩领奖' }, options); launchApp(params); } var getLOLMDeeplinkScheme = function getLOLMDeeplinkScheme(options, pageUrl) { var scheme = getScheme(options, GAME_MAP.LOLM.GID); if (pageUrl) { scheme = "".concat(scheme, "?linktype=H5&param1="); // param1的值由lolm侧分配 // param1=13000 对应H5链接前缀的是https://igame.qq.com/tip/ingame-page/ // param1=13001 对应H5链接前缀的是https://test.igame.qq.com/tip/ingame-page/ // param1=13002 对应H5链接前缀的是https://h5.nes.slol.qq.com/ // param1=13003 对应H5链接前缀的是https://h5-test.nes.slol.qq.com/ if (pageUrl.indexOf('test.igame.qq.com') !== -1) { // scheme += 13001; // 现网测试LOLM无法跳转测试环境,改成现网中转页 scheme += 13000; pageUrl = pageUrl.replace('https://test.igame.qq.com/tip/ingame-page/', ''); } else if (pageUrl.indexOf('igame.qq.com') !== -1) { scheme += 13000; pageUrl = pageUrl.replace('https://igame.qq.com/tip/ingame-page/', ''); } else if (pageUrl.indexOf('h5.nes.slol.qq.com') !== -1) { scheme += 13002; pageUrl = pageUrl.replace('https://h5.nes.slol.qq.com/', ''); } else if (pageUrl.indexOf('h5-test.nes.slol.qq.com') !== -1) { scheme += 13003; pageUrl = pageUrl.replace('https://h5-test.nes.slol.qq.com/', ''); } scheme += "&param2=".concat(pageUrl); } return scheme; }; /** * 获取拉起各个游戏的scheme,如果参数中设置了页面,则为deeplink scheme * * @param {int} gid 游戏ID * @param {String} pageUrl 要打开的页面地址,为空时表示只拉起游戏 */ var getOpenGameScheme = function getOpenGameScheme(options, gid, pageUrl) { if (pageUrl === void 0) { pageUrl = ''; } var env = initEnv(); var scheme = ''; switch (gid) { case GAME_MAP.PVP.GID: scheme = getScheme(options, GAME_MAP.PVP.GID, 'community'); if (pageUrl) { scheme = "".concat(scheme, "?gamedata=JUMPX5_").concat(encodeURIComponent(pageUrl)); } break; case GAME_MAP.GP.GID: scheme = getScheme(options, GAME_MAP.GP.GID); if (pageUrl) { // force关闭拍脸,dir是朝向,fullscreen全屏显示 scheme = "".concat(scheme, "?exdata:method=open_url,url=").concat(encodeURIComponent(pageUrl), ",force=1,dir=2,fullscreen=1"); } break; case GAME_MAP.HLDDZ.GID: scheme = getScheme(options, GAME_MAP.HLDDZ.GID, env.isIOS ? 'iOS' : 'android'); if (pageUrl) { var mode = 'MSDK_EmbeddedWebView'; scheme = "".concat(scheme).concat(env.isIOS ? '&a=:/' : '', "&Operation=OpenGeneralURL&URL=").concat(pageUrl, "&Size=FullScreen&Mode=").concat(mode, "&IsVideo=False&CheckGuest=True&InQueue=False&MultiInst=False"); } break; case GAME_MAP.MJ.GID: scheme = getScheme(options, GAME_MAP.MJ.GID); break; case GAME_MAP.LOLM.GID: scheme = getLOLMDeeplinkScheme(options, pageUrl); break; case GAME_MAP.TY.GID: scheme = getScheme(options, GAME_MAP.TY.GID); break; case GAME_MAP.TLBB.GID: scheme = getScheme(options, GAME_MAP.TLBB.GID); break; case GAME_MAP.X5M.GID: scheme = getScheme(options, GAME_MAP.X5M.GID); break; } return scheme; }; export { getOpenGameScheme, gotoDzGame, gotoGPGame, gotoLOLMGame, gotoMJGame, gotoNarutoGame, gotoTDGame, gotoTLBBGame, gotoWzCommunity, gotoWzGame, gotoX5MGame };