微信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 相关文章推荐
EasySlider 基于jQuery功能强大简单易用的滑动门插件
Jun 11 Javascript
JavaScript地图拖动功能SpryMap的简单实现
Jul 17 Javascript
jQuery 移动端artEditor富文本编辑器
Jan 11 Javascript
理解javascript中的MVC模式
Jan 28 Javascript
原生JS实现-星级评分系统的简单实例
Aug 21 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
Mar 01 Javascript
angular2 ng build部署后base文件路径问题详细解答
Jul 15 Javascript
zTree节点文字过多的处理方法
Nov 24 Javascript
JS实现带导航城市列表以及输入搜索功能
Jan 04 Javascript
单页面vue引入百度统计的使用方法示例详解
Oct 13 Javascript
微信小程序监听用户登录事件的实现方法
Nov 11 Javascript
微信小程序点击滚动到指定位置的实现
May 22 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
PHP异步调用socket实现代码
2012/01/12 PHP
PHP实现搜索相似图片
2015/09/22 PHP
php的laravel框架快速集成微信登录的方法
2016/12/12 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
javascript图片滑动效果实现
2021/01/28 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
Javascript基础教程之比较null和undefined值
2016/05/16 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
es6中使用map简化复杂条件判断操作实例详解
2020/02/19 Javascript
python3生成随机数实例
2014/10/20 Python
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
Python字符串格式化的方法(两种)
2017/09/19 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
高山背包:High Sierra
2017/11/23 全球购物
外国语学院毕业生自荐信
2013/10/28 职场文书
上课看小说检讨书
2014/02/22 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
感谢信怎么写
2015/01/21 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
《社戏》教学反思
2016/02/22 职场文书
python办公自动化之excel的操作
2021/05/23 Python
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android
Python&Matlab实现灰狼优化算法的示例代码
2022/03/21 Python