微信JS-SDK概述
微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。
通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。
JSSDK使用步骤
步骤一:绑定域名
先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
备注:登录后可在“开发者中心”查看对应的接口权限。
步骤二:引入JS文件
在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.2.0.js
备注:支持使用 AMD/CMD 标准模块加载方法加载
步骤三:通过config接口注入权限验证配置
所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。
wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见附录1 jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 });
步骤四:通过ready接口处理成功验证
wx.ready(function(){ // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 });
步骤五:通过error接口处理失败验证
wx.error(function(res){ // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 });
告别复杂,使用$hcWeChat->getJsTicket(); 一步完成配置过程!
一个页面分享的实例:
<?php include '../hcWeChat/hcWeChat.php'; $hcWeChat = new hcWeChat(); //获取js Ticket $jsConfig = $hcWeChat->getJsTicket(); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <title>页面分享</title> <link rel="stylesheet" type="text/css" href="css/hui.css" /> </head> <body> <div class="hui-wrap"> <img src="imgs/bg1.jpg" width="100%" /> </div> <script type="text/javascript" src="js/hui.js" charset="UTF-8"></script> <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> <script type="text/javascript"> wx.config({ debug: false, appId: '<?php echo $hcWeChat->appID;?>', // 必填,公众号的唯一标识 timestamp: <?php echo $jsConfig["timestamp"];?>, nonceStr: '<?php echo $jsConfig["nonceStr"];?>', signature: '<?php echo $jsConfig["signature"];?>', jsApiList: [ 'chooseImage', 'previewImage', 'uploadImage', 'downloadImage', 'startRecord', 'stopRecord', 'onVoiceRecordEnd', 'playVoice', 'pauseVoice', 'stopVoice', 'onVoicePlayEnd', 'uploadVoice', 'downloadVoice', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareQZone' ] }); <?php $title = 'hcoder 分享测试'; $shareImg = 'http://wx.hcoder.net/demo/imgs/share.jpg'; ?> wx.ready(function(){ wx.onMenuShareTimeline({ title: '<?php echo $title;?>', link: location.href, // 分享链接 imgUrl: '<?php echo $shareImg;?>', // 分享图标 success: function(){}, cancel: function(){} }); wx.onMenuShareAppMessage({ title: '<?php echo $title;?>', desc: 'power by hcoder.net', link: location.href, imgUrl: '<?php echo $shareImg;?>', // 分享图标 success: function(){}, cancel: function(){} }); }); </script> </body> </html>
使用其它功能
除了分享,利用JS-SDK还可以完成拍照、相册、音频、设备信息获取、扫一扫、支付等多种功能。这些功能都以配置为基础。详情请参考微信公众平台开发手册:
https://mp.weixin.qq.com/wiki