UNPKG

@tsdanci/wx-share

Version:

WeChat Share SDK utility for web applications

88 lines (86 loc) 2.71 kB
interface ShareConfig { title?: string; desc?: string; link?: string; imgUrl?: string; success?: () => void; fail?: (err: any) => void; cancel?: () => void; } interface SignConfig { appId: string; timestamp: string; nonceStr: string; signature: string; } interface SignConfigResponse { data: SignConfig; } interface SignConfigOptions { url?: string; customFetch?: (url: string) => Promise<SignConfigResponse>; } declare class WxShareUtil { private static instance; private isInit; private isDebug; private signConfig; private defaultConfig; private defaultApiUrl; private customFetch?; private shareOptions; private constructor(); static getInstance(): WxShareUtil; /** * 设置调试模式 * @param debug 是否开启调试模式 * @returns 当前实例,支持链式调用 */ setDebug(debug: boolean): WxShareUtil; /** * 获取当前页面URL(包含hash) */ getCurrentUrl(): string; private isWeixinBrowser; /** * 设置分享信息 * @param config 分享配置 * @param useDefault 是否使用默认配置合并(默认false) * @returns 当前实例,支持链式调用 */ setShareInfo(config: ShareConfig, useDefault?: boolean): WxShareUtil; /** * 快速分享(自动初始化并设置分享信息) * @param signConfig 签名配置 * @param config 分享配置 * @param useDefault 是否使用默认配置合并(默认false) * @returns Promise<boolean> */ share(signConfig: SignConfig, config: ShareConfig, useDefault?: boolean): Promise<boolean>; /** * 初始化微信分享配置 * @param signConfig 签名配置 * @returns Promise<boolean> 初始化是否成功 */ initWithConfig(signConfig: SignConfig): Promise<boolean>; /** * 设置分享配置 * @param options 分享配置 * @returns 当前实例,支持链式调用 */ setShareOptions(options: ShareConfig): WxShareUtil; /** * 从API获取签名配置并初始化分享 * @param options 配置选项 * @returns Promise<WxShareUtil> */ fetchSignConfigAndShare(options?: SignConfigOptions): Promise<WxShareUtil>; /** * 设置自定义的签名配置获取方法 * @param customFetch 自定义的fetch方法 * @returns 当前实例,支持链式调用 */ setCustomFetch(customFetch: (url: string) => Promise<SignConfigResponse>): WxShareUtil; } declare const createWxShare: () => WxShareUtil; export { type ShareConfig, type SignConfig, type SignConfigOptions, type SignConfigResponse, createWxShare };