公众号分享到好友链接无效 图标无效

作者: 谢mingmin | 来源:发表于2018-10-02 17:32 被阅读4次

    背景

    时间: 2018-9-30~2018-10-01;

    前端: vue

    JS-SDK: 1.4.0

    分享目的: 刚接手一个公众号网站的项目,其中有个需求是分享某个页面(A页面)到好友。遇到了几个坑,趁着还记得解决过程写下这篇文章以记录一下爬坑过程

    这里以updateAppMessageShareData为例子

    0号坑--回调不及预期

    这个好解决,看代码你应该就知道原因了

    wx.ready(function () {   //需在用户可能点击分享按钮前就先调用
        const self = this;
        wx.updateAppMessageShareData({ 
            title: '', // 分享标题
            desc: '', // 分享描述
            link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            imgUrl: '', // 分享图标
        }, (res) => { 
            // 这里面用this,拿不到vue实例
        }); 
    });
    

    不过,在我用这个接口的时候,回调依然没有产生,不过老的接口可以正常回调。但是文档说老接口要废弃了

    1号坑--图标不显示

    原因包括但不仅限于下面两种情况:

    base64

    确定图标是否被编码成base64,如果是小图片可能会被webpack处理了,imgUrl的变成一个带base64的字符串

    缺少protocol

    link的格式可以是//安全域名/A/B/C,但是图片的url需要http://安全域名

    3号坑--分享链接失效

    在这两天的实践中,iOS的分享总是失效,不能正确的分享页面A,但是在安卓机器上不会出现这个问题。

    如果你有使用wx.error函数,那么你可能已经知道进入这个页面的时候执行config的结果是invalid signature

    然后你开始百思不得其解,这玩意明明在安卓上成功了,为什么换到iOS就invalid signature

    接着你可能开始怼后端了,如果签名部分是你自己实现的,那你可以什么都不用动。

    你可以试一下分享之前摇一摇分享之前刷新一下页面

    如果你刷新后可以成功的分享页面的话,我想你已经知道接下来怎么做了。

    赶紧往error回调函数里面写个location.reload方法,让页面刷新。

    不过,你要是这么随意的让页面刷新,那可以这个页面就无限刷新了。记得在local storage里面存个变量防止无限刷新!

    以上方法如果无效的话,你还可以试一下网上说的,iOS只要在首页执行config注入的神操作

    一些吐槽

    以上三个破问题,花了我2天半的时候排查解决。特此记录下来,希望对你有帮助。

    首发

    相关文章

      网友评论

        本文标题:公众号分享到好友链接无效 图标无效

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