微信公众号分享给朋友onMenuShareAppMessage失效
解决方案:
之前用的是1.6.0版本,改成jweixin-1.2.0.js,wx.onMenuShareTimeline,wx.onMenuShareAppMessage就成功了。
不知道是不是微信的bug?
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>微信js分享接口</title> </head> <body> {$name}<br /> {$nonceStr}<br /> {$signature}<br /> <div id="div" style="border:1px solid red;width:100px;height:100px;"></div> <script src="https://cdn.staticfile.org/jquery/1.10.0/jquery.js" ></script> <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> <script> // alert(location.href.split('#')[0]); wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: 'wx9d6a08c4c094a2ab', // 必填,公众号的唯一标识 timestamp: '{$time}', // 必填,生成签名的时间戳 nonceStr: '{$nonceStr}', // 必填,生成签名的随机串 signature: '{$signature}',// 必填,签名 jsApiList: [ 'chooseImage', // 拍照 'scanQRCode', // 微信扫一扫 'updateAppMessageShareData', 'onMenuShareAppMessage', ] // 必填,需要使用的JS接口列表 }); wx.ready(function(){ wx.onMenuShareAppMessage({ title: 'title', // 分享标题 desc: 'desc', // 分享描述 link: 'https://h5.kehu.fun', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: 'https://h5.kehu.fun/static/img/2.jpg', // 分享图标 type: '', // 分享类型,music、video或link,不填默认为link dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空 success: function () { // 用户点击了分享后执行的回调函数 $('#div').html('已经分享了哦~'); setTimeout(function(){ //回调要执行的代码 $('#div').html('已经分享了哦~'); }, 500); } }); }); // 微信拍照 function show(){ $('#div').html('show'); wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function (res) { var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片 } }); } // 微信扫一扫 function scan(){ $('#div').html('scan'); wx.scanQRCode({ needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有 success: function (res) { var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果 } }); } wx.error(function(res){ // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 }); </script> <button onclick="show()">拍照</button> <button onclick="scan()">扫一扫</button> </body> </html>