jssdk,安卓,友盟 微信二次分享失效以及相关问题解决

文章目录
1.微信二次分享失效原因
最近在项目开发中,需要从安卓端分享app推广页面到微信端,用的是友盟的sdk 。从安卓端分享出来页面是没问题的 。下图

jssdk,安卓,友盟 微信二次分享失效以及相关问题解决

文章插图
但是二次分享后就是这样的效果了 。
jssdk,安卓,友盟 微信二次分享失效以及相关问题解决

文章插图
1.1 二次分享指什么
何为二次分享,即从安卓端分享到微信端叫首次分享,然后你分享出去的内容被其他人点了转发叫二次分享 。二次分享又有直接二次分享和间接二次分享 。直接二次分享是从聊天页面长按分享链接转发给好友,间接二次分享是指点进链接之后,在页面之中进行分享 。虽然效果都是将页面分享出去,但是显示效果却是不一样的 。
直接二次分享时,接收人接收到的信息和你转发出去时一致,即你转发时是什么,别人就收到什么样的消息 。
间接二次分享时就和直接二次分享可能出现的效果不一致,简介二次分享时,是由微信重新排版页面之后进行分享了 。所以效果上会有所差异 。
1.2 为什么二次分享会失效
所谓二次分享失效是分享的内容只剩标题了,描述和图片均变成了链接了 。而分享来源消失则是正常状态 。许多企业甚至是上市公司都没有注意到这个问题,当他们的分享页面被二次分享后就出现了很丑的只剩链接的 。
那为什么会出现这样的问题呢??
当打开分享页面时,是由微信内置浏览器打开了你分享的链接地址,所以打开后二次分享和你从安卓端首次分享出来时已经不是一个概念了 。从安卓端首次分享出来,你配置好了分享内容 。直接二次分享时,转发的是你接收的那条分享信息,该信息甚至还包含了分享来源,所以一般很少出现二次失效的问题 。而间接二次分享时,微信内置浏览器甚至会重排版你的网页信息,也拿不到你分享时的配置信息,所以你二次分享后就出现了失效的问题 。
2.二次分享失效的解决
要想解决二次失效的问题,需要从分享的目标网页使用微信的jssdk进行分享配置 。即你需要在目标网页实现分享功能 。
看到这个答案,你是不是觉得一脸懵逼?
jssdk,安卓,友盟 微信二次分享失效以及相关问题解决

文章插图
别急呀,这个问题并不难解决 。既然已经明白了问题所在,那么就干呗 。我相信既然有解决方案,并且有技术能解决,那就都不是问题 。
2.1 准备
首先,要解决这个问题,你需要有一个公众号,因为使用jssdk配置微信分享时,需要有公众号,且该公众号需要进行认证 。
其次,你需要后台为你增加一个接口,进行微信签名认证 。如果没有后台也不要紧,我会将后台实现方案给出来 。还得有一个备案好的域名 。
最后,就是需要把目标网页回炉重造,所以你要拿到目标网页的源码 。
如果你是纯安卓端开发的话,建议此篇文章分享给写web端看 。因为到了这一步,已经和安卓端没有半毛钱关系了 。当然你要看也是阔以的,最起码解决方案可以瞅瞅 。
2.2 公众号相关配置
如果你的公众号有专门的人负责的话,你就可以帅气的扔一句 。给我把目标网页的域名添加到
如果公司没有公众号的话,可就得多干点事情了 。申请公众号和认证公众号我就不再描述,有认证材料就很简单 。
首先,登录到微信公众平台,在开发配置模块设置公众号开发信息 。你需要拿到AppSecret和AppID 。然后可以配置一下ip白名单,将你公司的服务器ip添加到白名单之中 。不配置的话是访问不了微信服务的哟 。为什么设置ip白名单,在下图之中也是有相关描述的 。
jssdk,安卓,友盟 微信二次分享失效以及相关问题解决

文章插图
然后在公众号设置的功能设置里面设置业务安全域名和js接口域名 。业务安全域名一般指你后端存放的域名,通过该域名可以访问微信提供的开放接口 。而js接口域名则指目标网页地址所在域名,设置JS接口安全域名后,公众号开发者可在该域名下调用微信开放的JS接口 。
总之两个都设置一下,如果前后端都放在一个服务器的话,那么可以设置相同的域名 。前提是域名得备案 。
2.3 后台接口
微信jssdk开发文档
点击可以查看jssdk开发文档,里面有详细的介绍信息 。这里我就对微信分享进行描述 。
首先需要做一下配置 。
wx.config({debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印 。appId: '', // 必填,公众号的唯一标识timestamp: , // 必填,生成签名的时间戳nonceStr: '', // 必填,生成签名的随机串signature: '',// 必填,签名jsApiList: [] // 必填,需要使用的JS接口列表});