【uni-app】记vue+uniapp 项目H5微信分享失效的几个问题

这篇博客记录了在uniapp项目中遇到的H5端微信分享问题及其解决方案。问题1是iOS真机上微信分享失败,原因是vue在iOS微信浏览器中跳转路由会重定向,解决方案是在watch中监听路由变化并修正。问题2是分享链接参数不一致导致的分享失败,解决方法是确保请求微信签名时的链接与分享时的链接一致。
摘要由CSDN通过智能技术生成

最近在做uniapp项目H5端微信分享的时候遇到了几个疑难杂症,在网上找问题都没看到有响应的问题,特此记录一下,比较常见的问题可参考微信开发文档

问题1:wx.config注册成功,wx.ready执行成功,在开发者工具上面控制台也能看到打印好的日志,结果在ios真机上面微信分享失败。

原因之一:vue在ios微信浏览器中跳转路由会重定向!也就是说在真机中去获取签名的url是跳转之前的路径,比如从主页/home跳转到商品详情/productDetails, 在商品详情页我们一般直接用 location.href.split('#')[0]获取当前页面,在IOS微信浏览器可能会获取第一次进来的路径home!这就是为什么在本地调试没问题,真机上会有问题

解决方法:

watch: {
            
			"$route"(newVal, oldVal){
                // 针对商品详情在微信里路径重定向问题优化 前面的路径判断方法由自己定(为了防止无限刷新)
				if (!oldVal.fullPath.includes('productDetails') && newVal.fullPath.includes('productDetails') && /iPhone|mac|iPod|iPad/i.test(navigator.userAgent)) {
				    window.location.href = `${window.location.origin}/unimallf${this.$route.fullPath}`
				}
               
			},
		},

问题2:重定向问题ok,微信签名获取ok,注册接口ok,但真机分享的时候还是失败

原因:获取微信签名接口入参的url是当前页面的链接例如“www.baidu.com”,但是分享出去的链接新拼接了参数"www.baidu.com?userId=1234546";由于做的商城项目,分享出的链接要带上登录人的userId,然后而在请求微信签名的时候URL没有携带,在微信分享wx.ready的参数link后面拼接了参数,导致分享失败!

解决方法:在请求微信签名的时候就要把完整分享的链接拼接好,与wx.ready的参数link保持一致

如果对大家有帮助的话,可以点赞收藏评论三连。更多踩坑后续待完善......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值