解决 ios 调用 wx.config 需要刷新一次才能成功

1. 不需要使用 网页授权域名 方式

在进入H5公众号后,利用js 进行刷新一次,然后打个标记

 if (window.location.href.indexOf("refresh") === -1) {
    var newUrl = window.location.href + "?refresh";
    window.location.replace(newUrl);
  }

2. 需要使用 网页授权域名 方式

使用网页授权域名,需要做一个操作就是 window.history.replaceState(null, null, window.location.pathname)
不然无法做请求转发,我这边是用nodejs 做的请求转发,所以我们需要稍微修改下
比如你 需要打卡 '/weixinApp' 请求转发到 '/weixinSystem'

let replaceUrl = `${window.location.pathname}`
if (window.location.href.indexOf('weixinSystem') != -1) {
  if (window.location.href.indexOf('refresh') === -1) {
    var newUrl = window.location.href + '?refresh'
    window.location.replace(newUrl)
  }
  replaceUrl = `${window.location.pathname}${window.location.search}`
  window.history.replaceState(null, null, replaceUrl)
} else {
  window.history.replaceState(null, null, replaceUrl)
}

上面的意思是在进入转发的路由前,我们还是像之前一样使用 window.history.replaceState(null, null, window.location.pathname)
进入了转发的 '/weixinSystem'的时候我们需要进行刷新操作了,但又要保证标记不被清除,所以我们要写成
window.history.replaceState(null, null, ${window.location.pathname}${window.location.search})

我写的请求转发是node版本,也有nginx的,但我没有用,所以没有写
作者:白马不是马

posted @ 2023-03-03 09:30  中亿丰数字科技  阅读(49)  评论(0)    收藏  举报