zoukankan      html  css  js  c++  java
  • 微信自定义分享消息和遇到的一个问题

    一、前言

      微信自定义分享是一个很常见的功能,主要是利用微信JS-SDK实现自定义的分享效果。

      通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫等微信特有的能力,为微信用户提供更优质的网页体验。

      官方文档写的很详细。这里主要总结一下自定义分享的过程。

    二、前期准备

    1、微信服务号一个,最好通过实名认证的,不然没有权限去调用一些接口;

    2、一个域名,当然最好是备案的。

    3、微信开发者工具,方便本地调试。

    三、详细步骤

    1、查看AppId,AppSecret以及绑定域名 (查看官方文档)

    2、引入js文件

    <script src="//res.wx.qq.com/open/js/jweixin-1.3.0.js" type="text/javascript"></script>
    

    3、通过AppId和AppSecret请求accessToken,然后通过accessToken获取jsapi_ticket,生成config接口所需参数。我们这里是后台写好的jssdk接口来获取所需参数。

    4、在wx.config接口注入权限配置

    在第3步的回调中注入参数:

    wx.config({
         debug: o.debug === 'true',//可以通过在接口加上这个参数来开启调试模式
         appId, // 必填,公众号的唯一标识
         timestamp: parseInt(timestamp, 10), // 必填,生成签名的时间戳
         signature, // 必填,签名,见附录1
         jsApiList: o.jsApiList,
          fail(res) {
                 if (o.debug === 'true') {
                        window.alert('fail:jssdk授权配置错误')
                    }
                 },
           success(res) {
                 if (o.debug === 'true') {
                      alert(`OK:${JSON.stringify(res)}`)
                  }
            }
    })
    

    5、通过ready接口处理成功验证

    weixinShare(options, callback) {
          let defaults, o
    
          defaults = {
            title: '****', // 分享标题
            link: location.href, // 分享链接
            imgUrl: `${location.protocol}${require('@/assets/logo.png')}`, // 分享图标
            desc: '*************',
            success() {
              // 用户确认分享后执行的回调函数
            },
            cancel() {
              // 用户取消分享后执行的回调函数
            }
          }
          o = Object.assign(JSON.parse(JSON.stringify(defaults)), options || {})
    
          wx.onMenuShareTimeline(o) // 分享到朋友圈
          wx.onMenuShareAppMessage(o) // 分享给朋友
          wx.onMenuShareQQ(o) // 分享到QQ
          wx.onMenuShareWeibo(o) // 分享到腾讯微博
          wx.onMenuShareQZone(o) // 分享到QQ空间
        },

    四、遇到一个问题

    项目中期把http迁移到https的时候发现,微信报错,‘“invalid url domain”,开始很是奇怪,因为前期公众号绑定的是域名,没有带协议头,按道理应该自动识别协议头才对。不过事实上不是这样的,迁移到https的时候应该在后台重新备案,绑定需要一段时间才能通过。

    五、总结  

    1、都是很传统的做法

    2、注意结合debug模式去调试,如果有问题,可以看到微信的报错信息了。

    六、参考

    http://www.cnblogs.com/joshua317/p/4761948.html

      

  • 相关阅读:
    Codeforces Round #646 (Div. 2)【B. Subsequence Hate题解】
    关于MyBatis常见映射异常
    SQL语句汇总(终篇)—— 表联接与联接查询【转载自https://www.cnblogs.com/ghost-xyx/p/3813688.html】
    SQL语句汇总(二)——数据修改、数据查询【转载自https://www.cnblogs.com/ghost-xyx/p/3798362.html】
    浮动元素引起的问题和解决办法
    PHP 神奇的sprintf函数
    关于this,作用域,属性,原型链的一个小练习
    for...of 与 for...in 区别
    ES6 Promise对象then方法链式调用
    ES6通过WeakMap解决内存泄漏问题
  • 原文地址:https://www.cnblogs.com/leaf930814/p/9212297.html
Copyright © 2011-2022 走看看