最近在做一个公众号,涉及到分享的功能,但是在安卓机上,自定义的分享配置参数能够被触发,而在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 () {}
};
这个问题弄了我一下午啊,好在最后解决了!!