微信公众号分享给朋友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;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>
原文地址:https://www.cnblogs.com/chenyingying0/p/13936314.html