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

最近在做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保持一致

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

猜你喜欢

转载自blog.csdn.net/haidong55/article/details/121236690
今日推荐