@tsdanci/wx-share
Version:
WeChat Share SDK utility for web applications
88 lines (86 loc) • 2.71 kB
TypeScript
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 };