IOS环境下,微信分享失效问题

最近在做一个公众号,涉及到分享的功能,但是在安卓机上,自定义的分享配置参数能够被触发,而在ios苹果手机上却失效了,苦苦寻觅在百度上搜索解决办法,但都没有效果,,配置参数如下:

 var content = {
        title: '您的好友邀请你办信用卡啦', // 分享标题
        desc: '邀请好友办信用卡得奖金', // 分享描述
        link: 'http://ppl.hzqzinfo.com/cc-wechat/share.html?openId='+sessionStorage.openId+"&username="+sessionStorage.user_name+"&picid="+sessionStorage.picid, // 分享链接
        imgUrl: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1524029663610&di=3ace946ecf6b963b1fa1c47a7c94c25c&imgtype=0&src=http%3A%2F%2Fwww.68ecshop.com%2Fecshop_topic%2FDistribution%2Fimages%2Ficon_home.png', // 分享图标
        success: function () {},
        cancel: function () {}
    };

最终,我把link链接地址后面的参数去掉,此时在ios上是能够触发分享的,但是少了参数,我的业务逻辑就没办法处理,也不能存储在本地,后来找到一片博客,引起了我的注意,


 1. ios分享图标不能超过32K
 2. link参数带中文或者特殊字符,带中文的url在安卓中应该也是会出问题的,但是安卓会自动encodeURIComponent(),而ios不会

我马上想到我的url参数中带了中文字符,于是乎将其encodeURIComponent()编码,再提交代码,ios上完美运行!!
以下是修改后的配置:

 var content = {
        title: '您的好友邀请你办信用卡啦', // 分享标题
        desc: '邀请好友办信用卡得奖金', // 分享描述
        link: 'http://ppl.hzqzinfo.com/cc-wechat/share.html?openId='+sessionStorage.openId+"&username="+encodeURIComponent(sessionStorage.user_name)+"&picid="+sessionStorage.picid, // 分享链接
        imgUrl: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1524029663610&di=3ace946ecf6b963b1fa1c47a7c94c25c&imgtype=0&src=http%3A%2F%2Fwww.68ecshop.com%2Fecshop_topic%2FDistribution%2Fimages%2Ficon_home.png', // 分享图标
        success: function () {},
        cancel: function () {}
    };

这个问题弄了我一下午啊,好在最后解决了!!

你可能感兴趣的:(前端)