vue移动H5端 -- 微信分享详情页面,结果link为首页
前言在安卓分享详情没这问题,但是ios这边出现分享到首页,猜测是vue-router出的问题,然后,去基佬网(github)逛一圈,发现问题所在,链接(一)原因IOS:微信IOS版,微信安卓版,每次切换路由,SPA的url是不会变的,发起签名请求的url参数必须是当前页面的url就是最初进入页面时的urlAndroid:微信安卓版,每次切换路由,SPA的url是会变的,发起签名...
·
前言
在安卓分享详情没这问题,但是ios这边出现分享到首页,猜测是vue-router出的问题,然后,去基佬网(github)逛一圈,发现问题所在,
链接
(一)原因
IOS:微信IOS版,微信安卓版,每次切换路由,SPA的url是不会变的,发起签名请求的url参数必须是当前页面的url就是最初进入页面时的url
Android:微信安卓版,每次切换路由,SPA的url是会变的,发起签名请求的url参数必须是当前页面的url(不是最初进入页面时的)
虽然,请求签名的url跟当前页面的url(location.href)对比明明是一样的
(二)解决方案
在main.js 中
import router from './router'
// so easy
router.beforeEach(function (to, from, next) {
// loading 相关
// Vue.$vux.confirm.hide()
// Vue.$vux.toast.hide()
const agent = navigator.userAgent
const isiOS = !!agent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) // ios终端
// XXX: 修复iOS版微信HTML5 History兼容性问题
if (isiOS && to.path !== location.pathname) {
// 此处不可使用location.replace
location.assign(to.fullPath)
} else {
next()
}
})
router.afterEach(function (to, from) {
})
更多推荐
已为社区贡献1条内容
所有评论(0)