h5 微信分享,使用updateTimelineShareData ,title和图片也不展示问题

关于微信分享,其实我写过一篇类似的文章h5 微信分享知识点,而且本人对微信生态体系(公众号、小程序)经验也很丰富,以为自己不会再踩微信的坑

没想到最近两年没有对接微信,又再一次被坑了,再此记录一下吸取教训。

我们简单串一下流程,方便不太懂的小伙伴理解😄,知道的小伙伴可以跳过,坑点在最下边

授权

关于授权详情,大家可以去微信公众号 :h5获取code,授权等问题 了解具体的配置。

//这条链接主要是通过重定向,获取到**code**,然后与后端交互,获取信息方便执行wx.config
https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${local}&response_type=code&scope=snsapi_base&state=STATE&connect_redirect=1#wechat_redirect

 wx.config({
      debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
      appId: config.appId, // 必填,企业号的唯一标识,此处填写企业号corpid
      timestamp: config.timestamp, // 必填,生成签名的时间戳
      nonceStr: config.nonceStr, // 必填,生成签名的随机串
      signature: config.signature,// 必填,签名,见附录1
      jsApiList: [
          
          //分享朋友圈
          'updateTimelineShareData',
          //updateAppMessageShareData
          'updateAppMessageShareData',
          // 'onMenuShareTimeline',
          // 'onMenuShareAppMessage',
          'onMenuShareQQ',
          'onMenuShareQZone',
      ]
  });

新分享方法

onMenuShareAppMessage 改为 updateAppMessageShareData
onMenuShareTimeline 改为 updateTimelineShareData

微信sdk1.6.0
微信sdk1.4.0

微信sdk1.2.0

1.2.0以前用onMenuShareAppMessage、onMenuShareTimeline

1.4.0以后用updateAppMessageShareData、updateTimelineShareData

执行wx.ready

执行分享方法


/**
* 变量注释,这几个字段不要改,是微信的规定的,值随便赋值
* title : 标题
* desc:段落描述
* link:打开的地址
* imgUrl:图片(缩略图36kb以下)
*/ 
const {title,desc,link,imgUrl} = this.info

wx.ready(function(){
   wx.updateTimelineShareData({
      title,
      desc,
      link,
      imgUrl,
      trigger: function (res) {
        // alert('用户点击分享到朋友圈');
      },
      success: function (res) {
        // alert('已分享');
      },
      cancel: function (res) {
        // alert('已取消');
      },
      fail: function (res) {
        alert(JSON.stringify(res));
      }
    });
});

分享没有预期效果(坑点)

分享效果(大家应该都知道),我就不截图了,防止侵权之类的。

本来对分享方法进行了调用,按理title、desc和图片应该是自己配置的效果,但是大家会发现只是一个url地址,并没有达到预期效果

打开debug 模式,方法也都是ok,证明都执行成功了,那为啥还是不行呢 (就是在这踩的坑)

后来突然想到自己很久前好像也遇到过这个问题,只是当初很顺利就解决了,就没有留意,这次终于长教训了。

图片示例

以下图1为例,应将该地址(url)先输入到公众号,如果自己公司没有公众号(就随便找一个),然后从点击发送出来的地址

图1

在这里插入图片描述

图2

以百度网址为例。点击右上角,再分享给朋朋友就可以达到预期效果了

在这里插入图片描述

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
在 uni-app 中封装 H5 微信分享方法,可以使用以下步骤: 1. 安装 weixin-js-sdk 插件:在 HBuilderX 中打开 uni-app 项目,右键点击项目,选择“插件管理”,搜索并安装 weixin-js-sdk 插件。 2. 创建分享方法:在需要分享的页面中,创建分享方法,例如: ``` import wx from 'weixin-js-sdk'; export const share = (title, desc, link, imgUrl) => { wx.ready(() => { wx.updateAppMessageShareData({ title: title, desc: desc, link: link, imgUrl: imgUrl, success: function () { console.log('分享成功'); }, fail: function (err) { console.log('分享失败:' + err); } }); wx.updateTimelineShareData({ title: title, link: link, imgUrl: imgUrl, success: function () { console.log('分享成功'); }, fail: function (err) { console.log('分享失败:' + err); } }); }); }; ``` 其中,title 表示分享标题,desc 表示分享描述,link 表示分享链接,imgUrl 表示分享图片链接。 3. 初始化微信 SDK:在页面的 head 标签中引入微信 SDK,例如: ``` <script src="https://res2.wx.qq.com/open/js/jweixin-1.6.0.js"></script> ``` 在页面加载时,调用微信 SDK,例如: ``` mounted() { const url = window.location.href.split('#')[0]; this.initWXSDK(url); }, methods: { initWXSDK(url) { axios.get('http://yourdomain.com/api/wechat/signature', { params: { url: url } }).then(res => { wx.config({ debug: false, appId: res.data.appId, timestamp: res.data.timestamp, nonceStr: res.data.nonceStr, signature: res.data.signature, jsApiList: [ 'updateAppMessageShareData', 'updateTimelineShareData' ] }); }).catch(err => { console.log(err); }); }, } ``` 其中,url 表示当前页面的链接。在 initWXSDK 方法中,通过调用后端接口获取微信 SDK 的配置信息,包括 appId、timestamp、nonceStr 和 signature 等,然后通过 wx.config 方法对微信 SDK 进行初始化。 4. 调用分享方法:在需要分享的位置调用分享方法,例如: ``` this.$share('分享标题', '分享描述', '分享链接', '分享图片链接'); ``` 需要注意的是,在使用微信 SDK 进行分享时,需要在微信公众平台中对应的应用中配置 JS 接口安全域名。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值