今天上班第一天,Boss让实现微信分享后,要知道用户是否分享成功,分享成功后就给用户一个surprise(游戏礼包)。
通过查看API,做简单记录:
1.编写一个简单的jsp页面,加入如下JS代码:
// 开发阶段,开启WeixinApi的调试模式 WeixinApi.enableDebugMode(); // 初始化WeixinApi,等待分享 WeixinApi.ready(function(Api) { // 微信分享的数据 var wxData = { "appId": "", // 服务号可以填写appId "imgUrl" : ‘http://www.baidufe.com/fe/blog/static/img/weixin-qrcode-2.jpg‘, "link" : ‘http://www.baidufe.com‘, "desc" : ‘大家好,我是Alien,Web前端&Android客户端码农,喜欢技术上的瞎倒腾!欢迎多交流‘, "title" : "大家好,我是赵先烈" }; // 分享的回调 var wxCallbacks = { // 收藏操作不执行回调,默认是开启(true)的 favorite : false, // 分享操作开始之前 ready : function() { // 你可以在这里对分享的数据进行重组 alert("准备分享"); }, // 分享被用户自动取消 cancel : function(resp) { // 你可以在你的页面上给用户一个小Tip,为什么要取消呢? alert("分享被取消,msg=" + resp.err_msg); }, // 分享失败了 fail : function(resp) { // 分享失败了,是不是可以告诉用户:不要紧,可能是网络问题,一会儿再试试? alert("分享失败,msg=" + resp.err_msg); }, // 分享成功 confirm : function(resp) { // 分享成功了,我们是不是可以做一些分享统计呢? alert("分享成功,msg=" + resp.err_msg); }, // 整个分享过程结束 all : function(resp,shareTo) { // 如果你做的是一个鼓励用户进行分享的产品,在这里是不是可以给用户一些反馈了? alert("分享" + (shareTo ? "到" + shareTo : "") + "结束,msg=" + resp.err_msg); } }; // 用户点开右上角popup菜单后,点击分享给好友,会执行下面这个代码 Api.shareToFriend(wxData, wxCallbacks); // 点击分享到朋友圈,会执行下面这个代码 Api.shareToTimeline(wxData, wxCallbacks); // 点击分享到腾讯微博,会执行下面这个代码 Api.shareToWeibo(wxData, wxCallbacks); // iOS上,可以直接调用这个API进行分享,一句话搞定 Api.generalShare(wxData,wxCallbacks); });
2.运行JSP页面。
3. 将运行的JSP页面的网址复制,到http://cli.im/生成二维码。
4.登录微信,打开扫一扫,JSP页面就会在微信中打开。
5.然后就可以测试微信的分享功能了(具体还可以实现些什么功能可以参考API)。
注意的地方:
- 1)、
WeixinApi.js
路径是否引用正确 - 2)、
WeixinApi.ready
是否正确执行了?(可以在里面加一个alert,简单粗暴可依赖) - 3)、开启
WeixinApi.enableDebugMode
方便问题定位 - 4)、WeixinApi.ready执行,但是就是不执行分享时的代码时,请确认端口是不是80端口(我就在这上面耗了很长时间,悲催啊)。
微信API目前只支持80端口 需要其他端口支持需要使用端口映射
源码地址:https://github.com/zxlie/WeixinApi