Bootstrap

【微信H5开发】the permission value is offline verifying

一、配置了完整的config后为什么还是显示the permission value is offline verifying呢,安卓没问题而iphone手机会出现问题?

iphone手机获取路径是你进入该网站第一个页面开始算(包括刷新页面)
所以,我们需要对url进行缓存处理,而安卓不用

在这里插入图片描述

二、处理问题(Vue)

①准备
/* utils/index.js */
// 判断ios
export function isIOS() {
  return navigator.userAgent.indexOf('iPhone') > -1
}
// 获取缓存的url
export function getIOSFirstUrl() {
  return store.getters.iOSFirstUrl
}
// 设置缓存的url
export function setIOSFirstUrl(url) {
  store.dispatch('setIOSFirstUrl', url)
}
/* store/modules/app.js */
// 在store做缓存
const state = {
  iOSFirstUrl: null,
}
const mutations = {
  SET_IOS_FIRST_URL(state, url) {
    state.iOSFirstUrl = url
  }
}
const actions = {
  setIOSFirstUrl({ commit }, url) {
    commit('SET_IOS_FIRST_URL', url)
  }
}
export default {
  state,
  mutations,
  actions
}

②实际使用
/* src\router\index.js */
// ...router自带的东西
const { wx } = window
router.afterEach(async (to, from) => {
  console.log('router afterEach', { from, to })
  const url = isIOS() ? getIOSFirstUrl() : window.location.href
  // 调用API获取的config
  getJssdkConfig({
    url
  }).then(wxConfig => {
    wx.config(wxConfig)
    wx.ready(() => {
    	wx.updateTimelineShareData(/*对应配置*/)
    	wx.updateTimelineShareData(/*对应配置*/)
    })
  })
})
router.beforeEach(async (to, from, next) => {
	// ... 业务逻辑
	// 没有就设置到缓存
	if (!getIOSFirstUrl()) {
	  setIOSFirstUrl(window.location.href.split('#')[0])
	}
	// ... 业务逻辑
})
// ...router自带的东西
;