
Product
Introducing Repository Access Permissions and Custom Roles
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.
share-light
Advanced tools
轻量级的分享 SDK。支持以下渠道
novlan1
可直接引入,也可异步加载。
安装:
pnpm add share-light
main.ts 中:
import { initShare, openShareUI } from 'share-light';
initShare({
showToast: (message) => {
Toast.show(message);
},
showConfirmDialog: Dialog.confirm,
title: 'Better Share',
configWx,
});
openShareUI();
也可异步加载,并使用其提供的全局变量 shareLightSDK,性能更佳。
const SHARE_LIGHT_SCRIPT = 'https://image-1251917893.file.myqcloud.com/igame/npm/share-light/share-light%400.0.5.prod.js';
function init(
func: 'initShare' | 'hideShareBtn' | 'openShareUI' | 'setupWzydShare',
options?: ShareObject | string,
) {
return new Promise((resolve) => {
const innerCall = () => window.shareLightSDK?.[func]?.(options);
if (inited && window.shareLightSDK) {
resolve(innerCall());
return;
}
loader(SHARE_LIGHT_SCRIPT, () => {
inited = true;
resolve(innerCall());
return;
});
});
}
export function initShare(options: ShareObject) {
return init('initShare', {
hideShareType: getHideShareType(),
showToast: (message) => {
Toast.show(message);
},
showConfirmDialog: Dialog.confirm,
configWx,
// 业务如果需要,自行传入 postGetMiniProgramOpenLink,减小公共代码体积
// 以下代码为示例
// postGetMiniProgramOpenLink: (shareObject) => {
// const data = (shareObject.path || '').split('?');
// return postGetMiniProgramOpenLink({
// adcfg: {},
// appid: getJumpMiniProgramAppid(shareObject.gid),
// path: data.length > 0 ? data[0] : '',
// param_data: data.length > 1 ? data[1] : '',
// jump_type: JUMP_TYPES.CUSTOM_NO_ENCODE,
// });
// },
...options,
});
}
export function hideShareBtn() {
return init('hideShareBtn');
}
export function openShareUI() {
return init('openShareUI');
}
export function setupWzydShare(url: string) {
return init('setupWzydShare', url);
}
export const SHARE_TYPE_MAP = {
Wechat: 1,
Timeline: 2,
QQ: 3,
QZone: 4,
} as const;
export type ShareType = typeof SHARE_TYPE_MAP[keyof typeof SHARE_TYPE_MAP];
export interface ShareObject {
title?: string;
desc?: string;
icon?: string;
link?: string;
callback?: (_shareType?: ShareType) => {};
path?: string | null;
type?: string | number | null;
miniprogram_link?: string;
miniprogramAppId?: string;
gid?: number;
forceHistoryMode?: boolean;
isWzydShare?: boolean;
wzydShareText?: string;
// 要隐藏的分享类型,游戏内可用,比如传入 [1],即隐藏微信好友分享
hideShareType?: Array<ShareType>;
tipMap?: {
copyTextSuccess?: string;
copyTextFail?: string;
dialogTitle?: string;
dialogMessage?: string;
dialogConfirmButton?: string;
};
showToast?: (message: string) => any;
showConfirmDialog?: (options: {
title?: string;
message?: string;
confirmButtonText?: string;
showCancelButton?: boolean;
}) => any;
postGetMiniProgramOpenLink?: (options: ShareObject) => Promise<any>;
configWx?: (apiList: string[], openTagList?: string[]) => Promise<any>;
}
export interface ShareUIObject {
initCommShareUI?: (callbackName: string) => void;
initCommShareTip?: () => void;
showCommShareUI?: () => void;
showCommShareTip?: () => void;
openShareUI?: () => void;
}
默认分享图片和提示文案等,可通过 initShare 参数覆盖。
export const DEFAULT_SHARE_ICON = 'http://ossweb-img.qq.com/images/pmd/igameapp/logo/log_igame_3.0.png';
export const DEFAULT_TIP_MAP = {
copyTextSuccess: '复制链接成功,快去粘贴吧!',
copyTextFail: '该浏览器不支持自动复制',
dialogTitle: '温馨提示',
dialogMessage: '请复制链接到微信或手机QQ内打开参与活动',
dialogConfirmButton: '我知道了',
};
参考 分享模块重构
更新为异步后,每次修改 share-light,需要:
share-light 的 npm 包build 后,将构建产物 index.prod.js 上传到 COS 上,并重命名为 share-light@version.prod.jspmd-widget/share-v2 中的 script 链接FAQs
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.

Product
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.

Product
Socket Firewall blocks malicious VS Code and Open VSX extensions before install, protecting developers from compromised editor marketplaces.