微信H5调用updateAppMessageShareData方法分享导致link参数丢失解决方法

今天测试紧急通知了一个错误 有的用户分享了公众号发现参数丢失了 正常链接应该是​​​​​​​

 这个,但是分享完之后链接

变成了这样 #后面的参数丢失了,主要发生在ios上面,经过没丢失参数的和丢失参数的对比,发现没有分享图标的都丢失参数了,有分享图标的就没事,果断加了个默认图片,完美解决 

在 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 接口安全域名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值