UNPKG

t-comm

Version:

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

210 lines (207 loc) 6.29 kB
import { initCustomDialog, showCustomDialog } from '../../dialog/custom-dialog.mjs'; import { initEnv } from '../../env/env.mjs'; import '../../tslib.es6-096fffdd.js'; import { removeUrlParams } from '../../url/remove-url-params.mjs'; import { DEFAULT_SHARE_ICON, DEFAULT_SHOW_TYPE_IN_GAME, ShareConfig } from '../config.mjs'; import { showCommShareTip } from '../helper.mjs'; import { initGHelperShare, initPvpShare, initTipShare, hidePvpShareBtn } from './share-app.mjs'; import { initQQShare, initMiniProgramShare, initWeixinShare, hideQQShareBtn, hideWeixinShareBtn } from './share-im.mjs'; import { initMsdkShare, initInGameShare } from './share-in-game.mjs'; import '../../dom/dom.mjs'; import '../../url/format-url-params.mjs'; import '../../url/resolve-url-params.mjs'; import '../../loader/loader.mjs'; import '../../loader/little-loader.mjs'; import '../../wx/config.mjs'; import '../../wx/wx-config.mjs'; import '../../dom-to-image/dom-to-image.mjs'; import '../../msdk/msdk.mjs'; import '@babel/runtime/helpers/typeof'; import './share-msdk-v5.mjs'; function initShare(params) { var _a, _b, _c; if (params === void 0) { params = { getWxSignaturePromise: function getWxSignaturePromise() { return Promise.resolve({}); }, getMiniProgramOpenLink: function getMiniProgramOpenLink() { return Promise.resolve({}); } }; } var obj = params; obj.title = obj.title || ((_b = (_a = document.getElementsByTagName('title')) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.innerText); obj.desc = obj.desc || obj.title; obj.icon = obj.icon || DEFAULT_SHARE_ICON; obj.type = obj.type || null; obj.path = obj.path || null; obj.forceHistoryMode = obj.forceHistoryMode || null; if (!((_c = obj.showTypeInGame) === null || _c === void 0 ? void 0 : _c.length)) { obj.showTypeInGame = DEFAULT_SHOW_TYPE_IN_GAME; } // 分享链接:移除 reporttk 参数 var link = obj.link || window.location.href; obj.link = removeUrlParams(link, ['reporttk']); obj.wzydShareText = obj.wzydShareText || '点击“...”分享链接'; ShareConfig.setShareObject(obj); var _d = obj.getWxSignaturePromise, getWxSignaturePromise = _d === void 0 ? function () { return Promise.resolve({}); } : _d, _e = obj.getMiniProgramOpenLink, getMiniProgramOpenLink = _e === void 0 ? function () { return Promise.resolve({}); } : _e; var shareObject = ShareConfig.shareObject; // 提到函数中,方便测试 var env = initEnv(); var callbackList = [{ condition: env.isMsdk, callback: function callback() { initMsdkShare({ getMiniProgramOpenLink: getMiniProgramOpenLink, shareObject: shareObject }); } }, { condition: env.isGHelper, callback: function callback() { initGHelperShare({ shareObject: shareObject }); } }, { condition: env.isQQ, callback: function callback() { initQQShare({ shareObject: shareObject }); } }, { condition: env.isMiniProgram, callback: function callback() { initMiniProgramShare({ shareObject: shareObject }); } }, { condition: env.isWeixin, callback: function callback() { initWeixinShare({ shareObject: shareObject, getWxSignaturePromise: getWxSignaturePromise }); } }, { condition: env.isPvpApp, callback: function callback() { initPvpShare({ shareObject: shareObject }); } }, { condition: env.isTipApp, callback: function callback() { initTipShare({ shareObject: shareObject }); } }, { condition: env.isSlugSdk, callback: function callback() { initInGameShare({ shareObject: shareObject, getMiniProgramOpenLink: getMiniProgramOpenLink }); } }]; for (var _i = 0, callbackList_1 = callbackList; _i < callbackList_1.length; _i++) { var item = callbackList_1[_i]; if (item.condition) { item.callback(); break; } } // if (env.isMsdk) { // initMsdkShare({ // getMiniProgramOpenLink, // appId, // shareObject, // }); // } else if (env.isGHelper) { // initGHelperShare({ // shareObject, // }); // } else if (env.isQQ) { // initQQShare({ // shareObject, // }); // } else if (env.isMiniProgram) { // initMiniProgramShare({ // shareObject, // }); // } else if (env.isWeixin) { // initWeixinShare({ // shareObject, // getWxSignaturePromise, // }); // } else if (env.isSlugSdk) { // initInGameShare({ // shareObject, // getMiniProgramOpenLink, // appId, // }); // } } function showWindowNavigatorShareDialog() { var _a; var shareObject = ShareConfig.shareObject; if (typeof ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.share) === 'function') { window.navigator.share({ url: shareObject.link, text: shareObject.title, title: shareObject.title }).then(function () { console.log('NavigatorShare success'); })["catch"](function () { console.log('NavigatorShare fail'); }); } else { initCustomDialog({ title: '温馨提示', content: '请复制链接到微信或手机QQ内打开参与活动', confirmText: '我知道了' }); showCustomDialog(); } } /** * 打开自定义的分享UI组件 */ function openShareUI() { var _a; var shareUiObj = ShareConfig.shareUiObj; var env = initEnv(); if (env.isInGame || env.isGHelper) { (_a = shareUiObj === null || shareUiObj === void 0 ? void 0 : shareUiObj.openShareUI) === null || _a === void 0 ? void 0 : _a.call(shareUiObj); } else if (env.isQQ || env.isWeixin) { showCommShareTip(); } else { showWindowNavigatorShareDialog(); } } function hideShareBtn() { var env = initEnv(); if (env.isQQ) { // 手Q hideQQShareBtn(); } else if (env.isMiniProgram) ; else if (env.isWeixin) { // 微信 webview 环境 hideWeixinShareBtn(); } else if (env.isPvpApp) { // 王者人生 App hidePvpShareBtn(); } } export { hideShareBtn, initShare, openShareUI };