t-comm
Version:
专业、稳定、纯粹的工具库
260 lines (257 loc) • 9.17 kB
JavaScript
import { b as __awaiter, c as __generator, _ as __assign } from '../../tslib.es6-096fffdd.js';
import { urlToBase64 } from '../../dom-to-image/dom-to-image.mjs';
import { initEnv } from '../../env/env.mjs';
import { callJsBrowserAdapter } from '../../msdk/msdk.mjs';
import { ShareConfig, SHARE_TYPE_MAP, DEFAULT_SHOW_TYPE_IN_GAME } from '../config.mjs';
import { initCommShareUI, showCommShareUI, calBase64Size } from '../helper.mjs';
import { msdkShareV5 } from './share-msdk-v5.mjs';
import '../../loader/loader.mjs';
import '../../loader/little-loader.mjs';
import '@babel/runtime/helpers/typeof';
import '../../dialog/custom-dialog.mjs';
import '../../dom/dom.mjs';
function shareInMSDK(param) {
if (typeof window.msdkShare === 'undefined') {
callJsBrowserAdapter().then(function () {
window.msdkShare(param);
});
} else {
window.msdkShare(param);
}
}
function shareInSlugSDK(_a) {
var _b, _c;
var funcName = _a.funcName,
scene = _a.scene,
title = _a.title,
desc = _a.desc,
url = _a.url,
imgUrl = _a.imgUrl;
if (typeof window.msdkShare === 'undefined') {
callJsBrowserAdapter().then(function () {
var _a, _b;
(_b = (_a = window.customBrowserInterface) === null || _a === void 0 ? void 0 : _a[funcName]) === null || _b === void 0 ? void 0 : _b.call(_a, scene, title, desc, url, imgUrl);
});
} else {
(_c = (_b = window.customBrowserInterface) === null || _b === void 0 ? void 0 : _b[funcName]) === null || _c === void 0 ? void 0 : _c.call(_b, scene, title, desc, url, imgUrl);
}
}
function openWeixinOpenLink(_a) {
var failedCallback = _a.failedCallback,
getMiniProgramOpenLink = _a.getMiniProgramOpenLink;
if (typeof getMiniProgramOpenLink === 'undefined') {
failedCallback === null || failedCallback === void 0 ? void 0 : failedCallback();
return;
}
getMiniProgramOpenLink().then(function (response) {
if (response === null || response === void 0 ? void 0 : response.open_link) {
window.location.href = response.open_link;
} else {
failedCallback === null || failedCallback === void 0 ? void 0 : failedCallback();
}
})["catch"](function () {
failedCallback === null || failedCallback === void 0 ? void 0 : failedCallback();
});
}
function initMsdkShare(_a) {
var getMiniProgramOpenLink = _a.getMiniProgramOpenLink,
shareObject = _a.shareObject;
var _b = shareObject.showTypeInGame,
showTypeInGame = _b === void 0 ? DEFAULT_SHOW_TYPE_IN_GAME : _b;
initCommShareUI('msdkShareDelegate', showTypeInGame);
ShareConfig.setShareUI({
openShareUI: function openShareUI() {
showCommShareUI();
}
});
var env = initEnv();
if (env.isMsdkV5) {
window.msdkShareDelegate = function (type) {
if (type === 1) {
openWeixinOpenLink({
failedCallback: function failedCallback() {
msdkShareV5(type, shareObject);
},
getMiniProgramOpenLink: getMiniProgramOpenLink
});
return;
}
try {
msdkShareV5(type, shareObject);
} catch (err) {
console.log('err', err);
}
};
return;
}
/*
type:1(微信),2(朋友圈),3(QQ),4(QQ 空间)
*/
window.msdkShareDelegate = function (shareType) {
var _a;
return __awaiter(this, void 0, void 0, function () {
var type, imgData, imageDataSize, title, desc, typeMap, param;
var _b;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
(_a = shareObject.callback) === null || _a === void 0 ? void 0 : _a.call(shareObject);
type = shareType || 0;
return [4 /*yield*/, urlToBase64(shareObject.icon)];
case 1:
imgData = _c.sent();
imageDataSize = +calBase64Size(imgData);
console.log('msdkShareDelegate imageDataSize : ', imageDataSize);
title = shareObject.title.replace(/\n|\r|"|\\/g, '');
desc = shareObject.desc.replace(/\n|\r|"|\\/g, '');
typeMap = (_b = {}, _b[SHARE_TYPE_MAP.WX_FRIENDS] = {
MsdkMethod: 'WGSendToWeiXinWithUrl',
scene: '0',
title: title,
desc: desc,
url: shareObject.link,
mediaTagName: 'MSG_INVITE',
messageExt: 'title'
},
// `{"MsdkMethod":"WGSendToWeiXinWithUrl","scene":"0","title":"${title}","desc":"${desc}",
// "imgData":"${imgData}","url":"${shareObject.link}","mediaTagName":"MSG_INVITE","messageExt":"${title}"}`,
_b[SHARE_TYPE_MAP.WX_TIMELINE] = {
MsdkMethod: 'WGSendToWeiXinWithUrl',
scene: '1',
title: title,
desc: desc,
url: shareObject.link,
mediaTagName: 'MSG_INVITE',
messageExt: 'title'
},
// `{"MsdkMethod":"WGSendToWeiXinWithUrl","scene":"1","title":"${title}","desc":"${desc}",
// "imgData":"${imgData}","url":"${shareObject.link}","mediaTagName":"MSG_INVITE","messageExt":"${title}"}`,
_b[SHARE_TYPE_MAP.QQ_FRIENDS] = {
MsdkMethod: 'WGSendToQQ',
scene: '2',
title: title,
desc: desc,
url: shareObject.link
},
// `{"MsdkMethod":"WGSendToQQ","scene":"2","title":"${title}","desc":"${desc}",
// "imgData":"${imgData}","url":"${shareObject.link}"}`,
_b[SHARE_TYPE_MAP.QQ_ZONE] = {
MsdkMethod: 'WGSendToQQ',
scene: '1',
title: title,
desc: desc,
url: shareObject.link
}, _b);
{
Object.keys(typeMap).forEach(function (key) {
var value = typeMap[key];
typeMap[key] = JSON.stringify(__assign(__assign({}, value), {
imgUrl: shareObject.icon
}));
});
// msdk分享图片,android图片大小不能超过10k
}
if (typeof typeMap[type] === 'undefined') {
return [2 /*return*/, false];
}
param = typeMap[type];
if (type === SHARE_TYPE_MAP.WX_FRIENDS && getMiniProgramOpenLink) {
openWeixinOpenLink({
failedCallback: function failedCallback() {
shareInMSDK(param);
},
getMiniProgramOpenLink: getMiniProgramOpenLink
});
} else {
try {
shareInMSDK(param);
} catch (e) {
console.log('e', e);
throw e;
}
}
return [2 /*return*/];
}
});
});
};
}
function initInGameShare(_a) {
var shareObject = _a.shareObject,
getMiniProgramOpenLink = _a.getMiniProgramOpenLink;
var _b = shareObject.showTypeInGame,
showTypeInGame = _b === void 0 ? DEFAULT_SHOW_TYPE_IN_GAME : _b;
initCommShareUI('slugSDKShareDelegate', showTypeInGame);
ShareConfig.setShareUI({
openShareUI: function openShareUI() {
showCommShareUI();
}
});
/**
* type:1(微信),2(朋友圈),3(QQ),4(QQ 空间)
*/
// @ts-ignore
window.slugSDKShareDelegate = function (type) {
var _a;
(_a = shareObject.callback) === null || _a === void 0 ? void 0 : _a.call(shareObject);
switch (type) {
case SHARE_TYPE_MAP.WX_FRIENDS:
if (getMiniProgramOpenLink) {
openWeixinOpenLink({
failedCallback: function failedCallback() {
shareInSlugSDK({
funcName: 'sendToWeixinWithUrl',
scene: 2,
title: shareObject.title,
desc: shareObject.desc,
url: shareObject.link,
imgUrl: shareObject.icon
});
},
getMiniProgramOpenLink: getMiniProgramOpenLink
});
} else {
shareInSlugSDK({
funcName: 'sendToWeixinWithUrl',
scene: 2,
title: shareObject.title,
desc: shareObject.desc,
url: shareObject.link,
imgUrl: shareObject.icon
});
}
break;
case SHARE_TYPE_MAP.WX_TIMELINE:
shareInSlugSDK({
funcName: 'sendToWeixinWithUrl',
scene: 1,
title: shareObject.title,
desc: shareObject.desc,
url: shareObject.link,
imgUrl: shareObject.icon
});
break;
case SHARE_TYPE_MAP.QQ_FRIENDS:
shareInSlugSDK({
funcName: 'sendToQQ',
scene: 2,
title: shareObject.title,
desc: shareObject.desc,
url: shareObject.link,
imgUrl: shareObject.icon
});
break;
case SHARE_TYPE_MAP.QQ_ZONE:
shareInSlugSDK({
funcName: 'sendToQQ',
scene: 1,
title: shareObject.title,
desc: shareObject.desc,
url: shareObject.link,
imgUrl: shareObject.icon
});
break;
}
};
}
export { initInGameShare, initMsdkShare };