You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yanzong_qianduan/node_modules/weixin-js-sdk/index.d.ts

602 lines
21 KiB

8 months ago
// Type definitions for weixin jssdk 1.6.0
// Project: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
declare namespace wx {
type ImageSizeType = "original" | "compressed";
type ImageSourceType = "album" | "camera";
type VideoSourceType = "album" | "camera";
type ApiMethod =
| "onMenuShareTimeline"
| "onMenuShareAppMessage"
| "onMenuShareQQ"
| "onMenuShareWeibo"
| "onMenuShareQZone"
| "updateAppMessageShareData"
| "updateTimelineShareData"
| "startRecord"
| "stopRecord"
| "onVoiceRecordEnd"
| "playVoice"
| "pauseVoice"
| "stopVoice"
| "onVoicePlayEnd"
| "uploadVoice"
| "downloadVoice"
| "chooseImage"
| "previewImage"
| "uploadImage"
| "downloadImage"
| "translateVoice"
| "getNetworkType"
| "openLocation"
| "getLocation"
| "hideOptionMenu"
| "showOptionMenu"
| "hideMenuItems"
| "showMenuItems"
| "hideAllNonBaseMenuItem"
| "showAllNonBaseMenuItem"
| "closeWindow"
| "scanQRCode"
| "chooseWXPay"
| "openProductSpecificView"
| "addCard"
| "chooseCard"
| "openCard";
// 所有JS接口列表
type jsApiList = ApiMethod[];
// 开放标签列表
// https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html
type openTag = "wx-open-launch-weapp" | "wx-open-launch-app" | "wx-open-subscribe" | "wx-open-audio"
type openTagList = openTag[];
// 所有菜单项列表
// 基本类
type menuBase =
| "menuItem:exposeArticle" // 举报
| "menuItem:setFont" // 调整字体
| "menuItem:dayMode" // 日间模式
| "menuItem:nightMode" // 夜间模式
| "menuItem:refresh" // 刷新
| "menuItem:profile" // 查看公众号(已添加)
| "menuItem:addContact"; // 查看公众号(未添加)
// 传播类
type menuShare =
| "menuItem:share:appMessage" // 发送给朋友
| "menuItem:share:timeline" // 分享到朋友圈
| "menuItem:share:qq" // 分享到QQ
| "menuItem:share:weiboApp" // 分享到Weibo
| "menuItem:favorite" // 收藏
| "menuItem:share:facebook" // 分享到FB
| "menuItem:share:QZone"; // 分享到 QQ 空间
// 保护类
type menuProtected =
| "menuItem:editTag" // 编辑标签
| "menuItem:delete" // 删除
| "menuItem:copyUrl" // 复制链接
| "menuItem:originPage" // 原网页
| "menuItem:readMode" // 阅读模式
| "menuItem:openWithQQBrowser" // 在QQ浏览器中打开
| "menuItem:openWithSafari" // 在Safari中打开
| "menuItem:share:email" // 邮件
| "menuItem:share:brand"; // 一些特殊公众号
type menuList = Array<menuBase | menuProtected | menuShare>;
function config(conf: {
debug?: boolean; // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: string; // 必填,公众号的唯一标识
timestamp: number; // 必填,生成签名的时间戳
nonceStr: string; // 必填,生成签名的随机串
signature: string; // 必填,签名,见附录1
jsApiList?: jsApiList; // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
openTagList?: openTagList;
}): void;
interface Resouce {
localId: string;
}
interface BaseParams {
success?(...args: any[]): void;
/** 接口调用失败的回调函数 */
fail?(...args: any[]): void;
/** 接口取消调用的回调函数 */
cancel?(...args: any[]): void;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?(...args: any[]): void;
}
function ready(fn: () => void): void;
function error(fn: (err: { errMsg: string }) => void): void;
interface IcheckJsApi extends BaseParams {
jsApiList: jsApiList; // 需要检测的JS接口列表,所有JS接口列表见附录2,
// 以键值对的形式返回,可用的api值true,不可用为false
// 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
success(res: {
checkResult: { [api: string]: boolean };
errMsg: string;
}): void;
}
/**
* JS接口
* checkJsApi接口是客户端6.0.2使checkJsApi来检测
*/
function checkJsApi(params: IcheckJsApi): void;
interface IonMenuShareTimeline extends BaseParams {
title: string; // 分享标题
link: string; // 分享链接
imgUrl: string; // 分享图标
// 用户确认分享后执行的回调函数
success(): void;
// 用户取消分享后执行的回调函数
cancel(): void;
}
/*=============================基础接口================================*/
/**
*
*/
function onMenuShareTimeline(params: IonMenuShareTimeline): void;
interface IonMenuShareAppMessage extends BaseParams {
title: string; // 分享标题
desc: string; // 分享描述
link: string; // 分享链接
imgUrl: string; // 分享图标
type?: "music" | "video或link" | "link"; // 分享类型,music、video或link,不填默认为link
dataUrl?: string; // 如果type是music或video,则要提供数据链接,默认为空
// 用户确认分享后执行的回调函数
success(): void;
// 用户取消分享后执行的回调函数
cancel(): void;
}
/**
*
*/
function onMenuShareAppMessage(params: IonMenuShareAppMessage): void;
interface IonMenuShareQQ extends BaseParams {
title: string; // 分享标题
desc: string; // 分享描述
link: string; // 分享链接
imgUrl: string; // 分享图标
// 用户确认分享后执行的回调函数
success(): void;
// 用户取消分享后执行的回调函数
cancel(): void;
}
/**
* QQ
*/
function onMenuShareQQ(params: IonMenuShareQQ): void;
interface IonMenuShareWeibo extends BaseParams {
title: string; // 分享标题
desc: string; // 分享描述
link: string; // 分享链接
imgUrl: string; // 分享图标
// 用户确认分享后执行的回调函数
success(): void;
// 用户取消分享后执行的回调函数
cancel(): void;
}
/**
*
*/
function onMenuShareWeibo(params: IonMenuShareWeibo): void;
interface IonMenuShareQZone extends BaseParams {
title: string; // 分享标题
desc: string; // 分享描述
link: string; // 分享链接
imgUrl: string; // 分享图标
// 用户确认分享后执行的回调函数
success(): void;
// 用户取消分享后执行的回调函数
cancel(): void;
}
/**
* QQ空间
*/
function onMenuShareQZone(params: IonMenuShareQZone): void;
interface IupdateAppMessageShareData extends BaseParams {
title: string; // 分享标题
desc: string; // 分享描述
link: string; // 分享链接
imgUrl: string; // 分享图标
// 用户确认分享后执行的回调函数
success(): void;
}
/**
* QQ
*/
function updateAppMessageShareData(params: IupdateAppMessageShareData): void;
interface IupdateTimelineShareData extends BaseParams {
title: string; // 分享标题
link: string; // 分享链接
imgUrl: string; // 分享图标
// 用户确认分享后执行的回调函数
success(): void;
}
/**
* QQ空间
*/
function updateTimelineShareData(params: IupdateTimelineShareData): void;
/*=============================基础接口================================*/
/*=============================图像接口================================*/
interface IchooseImage extends BaseParams {
/** 最多可以选择的图片张数,默认9 */
count?: number;
/** original 原图,compressed 压缩图,默认二者都有 */
sizeType?: ImageSizeType[];
/** album 从相册选图,camera 使用相机,默认二者都有 */
sourceType?: ImageSourceType[];
/** 成功则返回图片的本地文件路径列表 tempFilePaths */
success(res: {
sourceType: string; // weixin album camera
localIds: string[];
errMsg: string;
}): void;
cancel(): void;
}
/**
* 使
*/
function chooseImage(params: IchooseImage): void;
interface IpreviewImage extends BaseParams {
current: string; // 当前显示图片的http链接
urls: string[]; // 需要预览的图片http链接列表
}
/**
*
*/
function previewImage(params: IpreviewImage): void;
interface IuploadResource extends BaseParams {
localId: string; // 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: number; // 默认为1,显示进度提示
// 返回图片的服务器端ID
success(res: { serverId: string }): void;
}
/**
*
*/
function uploadImage(params: IuploadResource): void;
interface IdownloadResource extends BaseParams {
serverId: string; // 需要下载的图片的服务器端ID,由uploadImage接口获得
isShowProgressTips: number; // 默认为1,显示进度提示
// 返回图片下载后的本地ID
success(res: Resouce): void;
}
/**
*
*/
function downloadImage(params: IdownloadResource): void;
interface IgetLocalImgData extends BaseParams {
localId: string; // 图片的localID
// localData是图片的base64数据,可以用img标签显示
success(res: { localData: string }): void;
}
/**
*
*/
function getLocalImgData(params: IgetLocalImgData): void;
/*=============================图像接口================================*/
/*=============================音频接口================================*/
/**
*
*/
function startRecord(): void;
interface IstopRecord extends BaseParams {
success(res: Resouce): void;
}
/**
*
*/
function stopRecord(params: IstopRecord): void;
interface IonVoiceRecordEnd extends BaseParams {
// 录音时间超过一分钟没有停止的时候会执行 complete 回调
complete(res: Resouce): void;
}
/**
*
*/
function onVoiceRecordEnd(params: IonVoiceRecordEnd): void;
interface IplaypausestopVoice extends BaseParams {
localId: string; // 需要播放的音频的本地ID,由stopRecord接口获得
}
/**
*
*/
function playVoice(params: IplaypausestopVoice): void;
/**
*
*/
function pauseVoice(params: IplaypausestopVoice): void;
/**
*
*/
function stopVoice(params: IplaypausestopVoice): void;
interface IonVoicePlayEnd extends BaseParams {
success(res: Resouce): void;
}
/**
*
*/
function onVoicePlayEnd(params: IonVoicePlayEnd): void;
/**
*
* 3
* serverId media_id
* ../12 / 58bfcfabbd501c7cd77c19bd9cfa8354.html
* 10000/
* weixin - open@qq.com,
*
* 使
*/
function uploadVoice(params: IuploadResource): void;
/**
*
*/
function downloadVoice(params: IdownloadResource): void;
/*=============================音频接口================================*/
/*=============================智能接口================================*/
interface ItranslateVoice extends BaseParams {
localId: string; // 需要识别的音频的本地Id,由录音相关接口获得
isShowProgressTips: number; // 默认为1,显示进度提示
success(res: { translateResult: string }): void;
}
/**
*
*/
function translateVoice(params: ItranslateVoice): void;
/*=============================智能接口================================*/
/*=============================设备信息================================*/
type networkType = "2g" | "3g" | "4g" | "wifi";
interface IgetNetworkType extends BaseParams {
success(res: { networkType: networkType }): void;
}
/**
*
*/
function getNetworkType(params: IgetNetworkType): void;
/*=============================设备信息================================*/
/*=============================地理位置================================*/
interface IopenLocation extends BaseParams {
latitude: number; // 纬度,浮点数,范围为90 ~ -90
longitude: number; // 经度,浮点数,范围为180 ~ -180。
name: string; // 位置名
address: string; // 地址详情说明
scale: number; // 地图缩放级别,整形值,范围从1~28。默认为最大
infoUrl: string; // 在查看位置界面底部显示的超链接,可点击跳转
}
/**
* 使
*/
function openLocation(params: IopenLocation): void;
interface IgetLocation extends BaseParams {
type: "wgs84" | "gcj02"; // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
success(res: {
latitude: number; // 纬度,浮点数,范围为90 ~ -90
longitude: number; // 经度,浮点数,范围为180 ~ -180。
speed: number; // 速度,以米/每秒计
accuracy: number; // 位置精度
}): void;
}
/**
*
*/
function getLocation(params: IgetLocation): void;
/*=============================地理位置================================*/
/*=============================摇一摇周边================================*/
interface IstartSearchBeacons extends BaseParams {
ticket: string; // 摇周边的业务ticket, 系统自动添加在摇出来的页面链接后面
// 开启查找完成后的回调函数
complete(argv: any): void;
}
/**
* ibeacon设备接口
*
*/
function startSearchBeacons(params: IstartSearchBeacons): void;
interface IstopSearchBeacons extends BaseParams {
// 关闭查找完成后的回调函数
complete(res: any): void;
}
/**
* ibeacon设备接口
*/
function stopSearchBeacons(params: IstopSearchBeacons): void;
interface IonSearchBeacons extends BaseParams {
// 回调函数,可以数组形式取得该商家注册的在周边的相关设备列表
complete(argv: any): void;
}
/**
* ibeacon设备接口
*/
function onSearchBeacons(params: IonSearchBeacons): void;
/*=============================摇一摇周边================================*/
/*=============================界面操作================================*/
/**
*
*/
function hideOptionMenu(): void;
/**
*
*/
function showOptionMenu(): void;
/**
*
*/
function closeWindow(): void;
interface IhideMenuItems extends BaseParams {
menuList: Array<menuProtected | menuShare>; // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
}
/**
*
*/
function hideMenuItems(params: IhideMenuItems): void;
interface IshowMenuItems extends BaseParams {
menuList: menuList; // 要显示的菜单项,所有menu项见附录3
}
/**
*
*/
function showMenuItems(params: IshowMenuItems): void;
/**
*
* 3
*/
function hideAllNonBaseMenuItem(): void;
/**
*
*/
function showAllNonBaseMenuItem(): void;
/*=============================界面操作================================*/
/*=============================微信扫一扫================================*/
type scanType = "qrCode" | "barCode";
interface IscanQRCode extends BaseParams {
needResult: 0 | 1; // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: scanType[]; // 可以指定扫二维码还是一维码,默认二者都有
// 当needResult 为 1 时,扫码返回的结果
success(res: { resultStr: string }): void;
}
/**
*
*/
function scanQRCode(params: IscanQRCode): void;
/*=============================微信扫一扫================================*/
/*=============================微信小店================================*/
interface IopenProductSpecificView extends BaseParams {
productId: string; // 商品id
viewType: "0" | "1" | "2"; // 0.默认值,普通商品详情页1.扫一扫商品详情页2.小店商品详情页
}
/**
*
*/
function openProductSpecificView(params: IopenProductSpecificView): void;
/*=============================微信卡券================================*/
interface IchooseCard extends BaseParams {
shopId: string; // 门店Id
cardType: string; // 卡券类型
cardId: string; // 卡券Id
timestamp: number; // 卡券签名时间戳
nonceStr: string; // 卡券签名随机串
signType: string; // 签名方式,默认'SHA1'
cardSign: string; // 卡券签名
success(res: { cardList: string[] }): void;
}
/**
*
*/
function chooseCard(params: IchooseCard): void;
interface IaddCard extends BaseParams {
cardList: Array<{
cardId: string;
cardExt: string;
}>; // 需要添加的卡券列表
success(res: { cardList: string[] }): void;
}
/**
*
*/
function addCard(): void;
interface IopenCard extends BaseParams {
cardList: Array<{
cardId: string;
code: string;
}>; // 需要打开的卡券列表
}
/**
*
*/
function openCard(params: IopenCard): void;
interface IconsumeAndShareCard extends BaseParams {
cardId: string;
code: string;
}
/**
*
*/
function consumeAndShareCard(params: IconsumeAndShareCard): void;
/*=============================微信卡券================================*/
/*=============================微信支付================================*/
interface IchooseWXPay extends BaseParams {
timestamp: number; // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
nonceStr: string; // 支付签名随机串,不长于 32 位
package: string; // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
signType: string; // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: string; // 支付签名
// 支付成功后的回调函数
success(res: any): void;
}
/**
*
*/
function chooseWXPay(params: IchooseWXPay): void;
/*=============================微信支付================================*/
/*=============================微信小程序==============================*/
interface miniProgramMethodsParams extends BaseParams {
url: string;
}
interface miniProgramMethods {
navigateTo(params: miniProgramMethodsParams): void;
navigateBack(params: miniProgramMethodsParams): void;
switchTab(params: miniProgramMethodsParams): void;
reLaunch(params: miniProgramMethodsParams): void;
redirectTo(params: miniProgramMethodsParams): void;
postMessage(params: { data: any }): void;
getEnv(fn: (res: any) => void): void;
}
const miniProgram: miniProgramMethods;
/*=============================微信小程序==============================*/
}
declare function wx(): void;
/*=============================微信内全局变量==============================*/
declare global {
interface Window {
WeixinJSBridge: any;
__wxjs_environment: any;
}
const WeixinJSBridge: any;
}
export default wx;