美文网首页
2019-04-30 有关微信分享 --nunjucks框架

2019-04-30 有关微信分享 --nunjucks框架

作者: 公纸晓白 | 来源:发表于2020-03-20 10:07 被阅读0次

    本文主要发送朋友和朋友圈两种

    1.创建share.js文件:

    function shareJs(jssdk, options) {
      wx.config({
        debug: false, //是否打开调试模式
        appId: jssdk.appId,
        timestamp: parseInt(jssdk.timestamp),
        nonceStr: jssdk.nonceStr,
        signature: jssdk.signature,
        jsApiList: [
          'onMenuShareTimeline',
          'onMenuShareAppMessage'
        ]
      });
      var defaults = {
        title: '分享的标题',
        desc: '分享的描述',
        link: location.href, // 分享页面地址,不能为空
        imgUrl: 'https://tup.iheima.com/sport.png', // 分享是封面图片,不能为空
        success: function () {}, // 分享成功触发
        cancel: function () {} // 分享取消触发,需要时可以调用
      }
      options = Object.assign({}, defaults, options);
      wx.ready(function () {
        var thatopts = options;
        wx.onMenuShareTimeline({
          title: thatopts.title, // 分享标题
          desc: thatopts.desc, // 分享描述
          link: thatopts.link, // 分享链接
          imgUrl: thatopts.imgUrl, // 分享图标
          success: function () {
            // alert("成功");
          },
          cancel: function () {
            // alert("失败")
          }
        });
        wx.onMenuShareAppMessage({
          title: thatopts.title, // 分享标题
          desc: thatopts.desc, // 分享描述
          link: thatopts.link, // 分享链接
          imgUrl: thatopts.imgUrl, // 分享图标
          success: function () {
            // alert("成功");
          },
          cancel: function () {
            // alert("失败")
          }
        });
      });
    }
    

    2.页面处理

    引入文件:

    <script src="/public/{{staticVersion}}js/share.js"></script>
    <script src='https://res.wx.qq.com/open/js/jweixin-1.0.0.js'></script>
    
    // 不需要拼接地址的地方
    let jssdk = {{wechat.data|stringify|safe}};
    // 准备好要传入到utils.js文件中的参数。
    let optionData = {
        title: '{{result.title}}',
        desc: '{{webdiy.name}}',
         link: '{{ shareurl}}',
        imgUrl: 'https:{{webdiy.wechat_service_qrcode}}'
    };
    shareJs(jssdk, optionData);
    

    3.服务端处理协议

    controller出了一些问题,在测试环境始终无法识别https
    暂采用以下方法:

        let xHttpsProxyHost = ctx.request.header['x-https-proxy-host']
        const protocol = xHttpsProxyHost ? 'https' : 'http';
    

    为避免二次分享问题:

    //进入时判断带有后缀则跳转
    var link = window.location.href.split("?")[0];
    if(link !== window.location.href)
    {
      window.location.href = link;
    }
    

    相关文章

      网友评论

          本文标题:2019-04-30 有关微信分享 --nunjucks框架

          本文链接:https://www.haomeiwen.com/subject/erpbnqtx.html