当前位置:Gxlcms > JavaScript > 微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解

微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解

时间:2021-07-01 10:21:17 帮助过:25人阅读

最近开发一个项目时,有微信H5网页自定义分享功能,使用了微信JS-SDK的分享到好友和分享到朋友圈功能。

微信开发文档这样写的

自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)

  1. wx.ready(function () { //需在用户可能点击分享按钮前就先调用
  2. wx.updateAppMessageShareData({
  3. title: '', // 分享标题
  4. desc: '', // 分享描述
  5. link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  6. imgUrl: '', // 分享图标
  7. success: function () {
  8. // 设置成功
  9. }
  10. });

自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容(1.4.0)

  1. wx.ready(function () { //需在用户可能点击分享按钮前就先调用
  2. wx.updateTimelineShareData({
  3. title: '', // 分享标题
  4. link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  5. imgUrl: '', // 分享图标
  6. success: function () {
  7. // 设置成功
  8. }
  9. });

看起来很简单,直接加入到H5网页里面了

  1. wx.config({
  2. debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  3. appId: '', // 必填,公众号的唯一标识
  4. timestamp: , // 必填,生成签名的时间戳
  5. nonceStr: '', // 必填,生成签名的随机串
  6. signature: '',// 必填,签名
  7. jsApiList: [
  8. 'updateAppMessageShareData',
  9. 'updateTimelineShareData'
  10. ] // 必填,需要使用的JS接口列表
  11. });

其他参数参考根据自己情况填写,并设置debug: true 

测试环境:

微信Web开发者工具,测试接口,ok

苹果X,查看debug的弹出信息,一切ok;

分享测试,一切ok

大工搞成。咦,等下,好像漏了什么。。。。。。安卓呢?

结果果然漏了,安卓测试分享朋友圈和发送给好友,自定义分享功能都无效,仅仅分享为一个链接而已。

这个问题苹果手机好的,安卓不行,并且微信web开发者工具测试接口都是好的,那问题应该不是接口调用(后台数据都是一样的),应该是和客户端有关,但又找不到相关资料。

百思不得其姐,困惑了好久,各种度娘也没有找到正确答案。某天突发奇想,新的接口不行,那旧的接口呢?

于是乎测试开始:

加入两个旧分享接口onMenuShareAppMessage和onMenuShareTimeline,然后写了个测试方法

  1. jsApiList: [
  2. 'updateAppMessageShareData',
  3. 'updateTimelineShareData',
  4. 'onMenuShareAppMessage', //旧的接口,即将废弃
  5. 'onMenuShareTimeline' //旧的接口,即将废弃
  6. ]// 必填,需要使用的JS接口列表

获取“分享给朋友”按钮点击状态及自定义分享内容接口(即将废弃)

  1. wx.onMenuShareAppMessage({
  2. title: 'test', // 分享标题
  3. desc: 'test_desc', // 分享描述
  4. link: 'www.jianshu.com', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  5. imgUrl: '', // 分享图标
  6. type: '', // 分享类型,music、video或link,不填默认为link
  7. dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
  8. success: function () {
  9. // 用户点击了分享后执行的回调函数
  10. }
  11. });

然后随便写了个测试发现居然成!功!了! 不过自定义分享内容还是新接口updateAppMessageShareData定义的。

删除旧接口定义再测试,发现仅仅在jsApiList加入旧接口声明也是可以的!

问题解决,这个真的是JS-SDK的一个坑。这篇文章希望能帮助到遇到相似问题的同学。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

人气教程排行