t-comm
Version:
专业、稳定、纯粹的工具库
210 lines (207 loc) • 6.29 kB
JavaScript
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 };