项目场景:
一个观众登记系统,有好友分享邀约参观的功能,正常的业务逻辑是:
A 邀请 B 报名参观,B 通过 A 发送的邀约链接进行登记。
项目使用的框架是:VUE2
问题描述
A 注册完成,到了“我的证件”页面后,分享给好友,此时安卓和 ios 两台手机测试产生两种情况:
1、苹果手机分享出来的链接,好友打开是“我的证件”页面,而不是首页(不正常);
2、安卓手机分享出来的链接,好友打开是“首页”(正常);
原因分析:
真实的原因其实我也没找到,但是操作发现在证件页面,刷新一下浏览器,再分享出来,这时候的链接点开是可以返回到首页的(为什么呢?有大神解答吗?),但是总不能让用户操作吧……百思不得其解,在下面这位老铁的方法里找到了思路。
记一次微信分享的坑,ios和安卓分享打开的url不一样_vue 微信浏览器ios 和安卓window.location.href不同-优快云博客
解决方案:
路由守卫:微信分享链接的页面路由wxshare,全局路由守卫判断路由再做相关操作
1、先设置好分享的链接,原来是/home,改为/wxshare
2、在 router 中加入路由守卫,当 path是 wxshare,强制跳转到 home 首页
修改 router 下的 index.js文件
router.beforeEach((to, from, next) => {
console.log('from',from)
console.log('to',to);
// return
if (to.path === '/wxshare') {
var query = to.query
let path = '/home?ly=' + query.ly + '&fcode' + query.fcode
next(path)
} else {
next()
}
})
至此,问题已经解决。
为了解决这个问题,重新撸了一遍微信 sdk的微信好友分享,看我另外一篇文章:https://blog.youkuaiyun.com/hj1043/article/details/139962130