微信JS接口汇总及使用详解


Posted in Javascript onJanuary 09, 2015

基本说明

使用说明

1.引入JS文件
在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js

备注:支持使用 AMD/CMD 标准模块加载方法加载

2.注入配置config接口
所有需要使用JSSDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用)。

wx.config({

 debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

 appId: '', // 必填,公众号的唯一标识

 timestamp: , // 必填,生成签名的时间戳

 nonceStr: '', // 必填,生成签名的随机串

 signature: '',// 必填,签名,见附录1

 jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2

});

3.验证通过ready接口

wx.ready(function(){
    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。

});

4.验证失败error接口

wx.error(function(res){

// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。

});

接口调用说明
所有接口通过wx对象(也可使用jWeixin对象)来调用,参数是一个对象,除了每个接口本身需要传的参数之外,还有以下通用参数:

success:接口调用成功时执行的回调函数。
fail:接口调用失败时执行的回调函数。
complete:接口调用完成时执行的回调函数,无论成功或失败都会执行。
cancel:用户点击取消时的回调函数,仅部分有用户取消操作的api才会用到。
trigger: 监听Menu中的按钮点击时触发的方法,该方法仅支持Menu中的相关接口。

以上几个函数都带有一个参数,类型为对象,其中除了每个接口本身返回的数据之外,还有一个通用属性errMsg,其值格式如下:

调用成功时:"xxx:ok" ,其中xxx为调用的接口名
用户取消时:"xxx:cancel",其中xxx为调用的接口名
调用失败时:其值为具体错误信息

基础接口
判断当前客户端版本是否支持指定JS接口

wx.checkJsApi({

jsApiList: ['chooseImage'] // 需要检测的JS接口列表,所有JS接口列表见附录2,

success: function(res) {

// 以键值对的形式返回,可用的api值true,不可用为false

// 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
});

分享接口

获取“分享到朋友圈”按钮点击状态及自定义分享内容接口

wx.onMenuShareTimeline({

    title: '', // 分享标题

    link: '', // 分享链接

imgUrl: '', // 分享图标

success: function () { 

// 用户确认分享后执行的回调函数

},

cancel: function () { 

// 用户取消分享后执行的回调函数

}

});

获取“分享给朋友”按钮点击状态及自定义分享内容接口

wx.onMenuShareAppMessage({

    title: '', // 分享标题

    desc: '', // 分享描述

    link: '', // 分享链接

    imgUrl: '', // 分享图标

    type: '', // 分享类型,music、video或link,不填默认为link

dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空

success: function () { 

// 用户确认分享后执行的回调函数

},

cancel: function () { 

// 用户取消分享后执行的回调函数

}

});

获取“分享到QQ”按钮点击状态及自定义分享内容接口

wx.onMenuShareQQ({

    title: '', // 分享标题

    desc: '', // 分享描述

    link: '', // 分享链接

    imgUrl: '' // 分享图标

success: function () { 

// 用户确认分享后执行的回调函数

},

cancel: function () { 

// 用户取消分享后执行的回调函数

}

});

获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口

wx.onMenuShareWeibo({

    title: '', // 分享标题

    desc: '', // 分享描述

    link: '', // 分享链接

    imgUrl: '' // 分享图标

success: function () { 

// 用户确认分享后执行的回调函数

},

cancel: function () { 

// 用户取消分享后执行的回调函数

}

});

图像接口

拍照或从手机相册中选图接口

wx.chooseImage({

    success: function (res) {

        var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片

    }

});

预览图片接口

wx.previewImage({

    current: '', // 当前显示的图片链接

    urls: [] // 需要预览的图片链接列表

});

上传图片接口

wx.uploadImage({

localId: '', // 需要上传的图片的本地ID,由chooseImage接口获得

isShowProgressTips: 1// 默认为1,显示进度提示

    success: function (res) {

        var serverId = res.serverId; // 返回图片的服务器端ID

    }

});

备注:可用微信下载多媒体文件接口下载上传的图片,此处获得的 serverId 即 media_id,参考文档../12/58bfcfabbd501c7cd77c19bd9cfa8354.html

下载图片接口

wx.downloadImage({

serverId: '', // 需要下载的图片的服务器端ID,由uploadImage接口获得

isShowProgressTips: 1// 默认为1,显示进度提示

    success: function (res) {

        var localId = res.localId; // 返回图片下载后的本地ID

    }

});

音频接口

开始录音接口

wx.startRecord();

停止录音接口

wx.stopRecord({

    success: function (res) {

        var localId = res.localId;

    }

});

监听录音自动停止接口

wx.onVoiceRecordEnd({

  // 录音时间超过一分钟没有停止的时候会执行 complete 回调

complete: function (res) {

var localId = res.localId; 

}

});

播放语音接口

wx.playVoice({

    localId: '' // 需要播放的音频的本地ID,由stopRecord接口获得

});

暂停播放接口

wx.pauseVoice({

    localId: '' // 需要暂停的音频的本地ID,由stopRecord接口获得

});

停止播放接口

wx.stopVoice({

    localId: '' // 需要停止的音频的本地ID,由stopRecord接口获得

});

监听语音播放完毕接口

wx.onVoicePlayEnd({

    serverId: '', // 需要下载的音频的服务器端ID,由uploadVoice接口获得

    success: function (res) {

        var localId = res.localId; // 返回音频的本地ID

    }

});

上传语音接口

wx.uploadVoice({

localId: '', // 需要上传的音频的本地ID,由stopRecord接口获得

isShowProgressTips: 1// 默认为1,显示进度提示

    success: function (res) {

        var serverId = res.serverId; // 返回音频的服务器端ID

    }

});

备注:可用微信下载多媒体文件接口下载上传的语音,此处获得的 serverId 即 media_id,参考文档../12/58bfcfabbd501c7cd77c19bd9cfa8354.html

下载语音接口

wx.downloadVoice({

serverId: '', // 需要下载的音频的服务器端ID,由uploadVoice接口获得

isShowProgressTips: 1// 默认为1,显示进度提示

    success: function (res) {

        var localId = res.localId; // 返回音频的本地ID

    }

});

 

智能接口

识别音频并返回识别结果接口

wx.translateVoice({

localId: '', // 需要识别的音频的本地Id,由录音相关接口获得

isShowProgressTips: 1, // 默认为1,显示进度提示

success: function (res) {

alert(res.translateResult); // 语音识别的结果

}

});

设备信息

获取网络状态接口

wx.getNetworkType({

    success: function (res) {

        var networkType = res.networkType; // 返回网络类型2g,3g,4g,wifi

    }

});

地理位置

使用微信内置地图查看位置接口

wx.openLocation({

    latitude: 0, // 纬度,浮点数,范围为90 ~ -90

    longitude: 0, // 经度,浮点数,范围为180 ~ -180。

    name: '', // 位置名

    address: '', // 地址详情说明

    scale: 1, // 地图缩放级别,整形值,范围从1~28。默认为最大

infoUrl: '' // 在查看位置界面底部显示的超链接,可点击跳转

});

获取地理位置接口

wx.getLocation({

    timestamp: 0, // 位置签名时间戳,仅当需要兼容6.0.2版本之前时提供

    nonceStr: '', // 位置签名随机串,仅当需要兼容6.0.2版本之前时提供

    addrSign: '', // 位置签名,仅当需要兼容6.0.2版本之前时提供,详见附录4

    success: function (res) {

        var longitude = res.longitude; // 纬度,浮点数,范围为90 ~ -90

        var latitude = res.latitude; // 经度,浮点数,范围为180 ~ -180。

        var speed = res.speed; // 速度,以米/每秒计

        var accuracy = res.accuracy; // 位置精度

    }

});

界面操作

隐藏右上角菜单接口

wx.hideOptionMenu();

显示右上角菜单接口

wx.showOptionMenu();

关闭当前网页窗口接口

wx.closeWindow();

批量隐藏功能按钮接口

wx.hideMenuItems({

    menuList: [] // 要隐藏的菜单项,所有menu项见附录3

});

批量显示功能按钮接口

wx.showMenuItems({

    menuList: [] // 要显示的菜单项,所有menu项见附录3

});

隐藏所有非基础按钮接口

wx.hideAllNonBaseMenuItem();

显示所有功能按钮接口

wx.showAllNonBaseMenuItem();

微信扫一扫

调起微信扫一扫接口

wx.scanQRCode({

desc: 'scanQRCode desc',

needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,

scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有

success: function () {

var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果

}

});

收获地址

编辑收货地址接口

wx.editAddress(

    timestamp: 0, // 位置签名时间戳,仅当需要兼容6.0.2版本之前时提供

    nonceStr: '', // 位置签名随机串,仅当需要兼容6.0.2版本之前时提供

    addrSign: '', // 位置签名,仅当需要兼容6.0.2版本之前时提供,详见附录4

    success: function (res) {

        var userName = res.userName; // 收货人姓名

        var telNumber = res.telNumber; // 收货人电话

        var postalCode = res.postalCode; // 邮编

        var provinceName = res.provinceName; // 国标收货地址第一级地址

        var cityName = res.cityName; // 国标收货地址第二级地址

        var countryName = res.countryName; // 国标收货地址第三级地址

        var address = res.address; // 详细收货地址信息

        var nationalCode = res.nationalCode; // 收货地址国家码

    }

});

获取最近的收货地址接口

wx.getLatestAddress({

    timestamp: 0, // 位置签名时间戳,仅当需要兼容6.0.2版本之前时提供

    nonceStr: '', // 位置签名随机串,仅当需要兼容6.0.2版本之前时提供

    addrSign: '', // 位置签名,仅当需要兼容6.0.2版本之前时提供,详见附录4

    success: function (res) {

        var userName = res.userName; // 收货人姓名

        var telNumber = res.telNumber; // 收货人电话

        var postalCode = res.postalCode; // 邮编

        var provinceName = res.provinceName; // 国标收货地址第一级地址

        var cityName = res.cityName; // 国标收货地址第二级地址

        var countryName = res.countryName; // 国标收货地址第三级地址

        var address = res.address; // 详细收货地址信息

        var nationalCode = res.nationalCode; // 收货地址国家码

    }

});

微信小店

跳转微信商品页接口

wx.openProductSpecificView({

productId: '', // 商品id

viewType: '' // 0.默认值,普通商品详情页1.扫一扫商品详情页2.小店商品详情页

});

微信卡券

调起适用于门店的卡券列表并获取用户选择列表

wx.chooseCard({

    shopId: '', // 门店Id

    cardType: '', // 卡券类型

    cardId: '', // 卡券Id

    timeStamp: 0, // 卡券签名时间戳

    nonceStr: '', // 卡券签名随机串

    cardSign: '', // 卡券签名,详见附录6

    success: function (res) {

        var cardList= res.cardList; // 用户选中的卡券列表信息

    }

});

批量添加卡券接口

wx.addCard({

cardList: [{

cardId: '',

cardExt: ''

}], // 需要添加的卡券列表

    success: function (res) {

        var cardList = res.cardList; // 添加的卡券列表信息

    }

});

查看微信卡包中的卡券接口

wx.openCard({

cardList: [{

cardId: '',

code: ''

}]// 需要打开的卡券列表

});

微信支付

发起一个微信支付请求

wx.chooseWXPay({

timestamp: 0, // 支付签名时间戳

noncestr: '', // 支付签名随机串

package: '', // 订单详情扩展字符串,详见附录5

paySign: '', // 支付签名,详见附录5

});
Javascript 相关文章推荐
mouse_on_title.js
Aug 25 Javascript
JS 非图片动态loading效果实现代码
Apr 09 Javascript
ASP中Sub和Function的区别说明
Aug 30 Javascript
让你的CSS像Jquery一样做筛选的实现方法
Jul 10 Javascript
使用jquery的ajax需要注意的地方dataType的设置
Aug 12 Javascript
js函数内变量的作用域分析
Jan 12 Javascript
jQuery oLoader实现的加载图片和页面效果
Mar 14 Javascript
使用JQuery在线制作ppt并在线演示源码特效
Sep 08 Javascript
jQuery实现的左右移动焦点图效果
Jan 14 Javascript
window.onerror()的用法与实例分析
Jan 27 Javascript
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
原生js实现商品筛选功能
Oct 28 Javascript
推荐一款jQuery插件模板
Jan 09 #Javascript
JavaScript中Cookie操作实例
Jan 09 #Javascript
使用javascript实现简单的选项卡切换
Jan 09 #Javascript
14个有用的Jquery技巧分享
Jan 08 #Javascript
jQuery中insertBefore()方法用法实例
Jan 08 #Javascript
jQuery中insertAfter()方法用法实例
Jan 08 #Javascript
jQuery中prependTo()方法用法实例
Jan 08 #Javascript
You might like
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
鼠标移动到一张图片时变为另一张图片
2006/12/05 Javascript
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
ExtJS下grid的一些属性说明
2009/12/13 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
利用python程序生成word和PDF文档的方法
2017/02/14 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
2017/04/24 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
美国在线珠宝商店:SZUL
2017/02/11 全球购物
HSRP的含义以及如何工作
2014/09/10 面试题
大专生毕业的自我评价
2014/02/06 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
超市理货员岗位职责
2014/07/04 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
Spring整合Mybatis的全过程
2021/06/28 Java/Android
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技
Redis实现订单过期删除的方法步骤
2022/06/05 Redis