1.小程序跳转的页面代码
<template>
<view>
<web-view :src="url"></web-view>
</view>
</template>
<script>
export default {
data() {
return {
url: '',
}
},
onLoad() {
this.getToken()
},
methods: {
getToken() {
let token = JSON.parse(uni.getStorageSync('userInfo')).access_token
this.url = `localhost:8000?token=${token}`
console.log(this.url)
}
}
}
</script>
2.在H5页面处理url地址 2.1 处理url参数转对象
const parseString = function parseString(url) {
const path = url.split('?')[1];
const urlres = path.replace(/&/g, '","').replace(/=/g, '":"');
const reqDataString = '{"' + urlres + '"}';
const query = JSON.parse(reqDataString);
return query
}
2.2在app.vue或者main.js处理
<script>
import {
parseString
} from "@/utils/utils.js"
export default {
onLaunch() {
console.log('onLaunch')
},
onShow: function() {
console.log('onShow')
},
onHide: function() {},
beforeCreate() {
let token = parseString(window.location.href).token;
if (token.substring(token.length - 2, token.length).indexOf('#/') !== -1) {
token = token.substring(0, token.length - 2)
}
localStorage.setItem('token', token)
console.log('beforeCreate')
},
created() {
console.log('created')
},
methods: {}
}
</script>
3.此时会出现个问题,request封装的请求执行速度会比你拿取token的速度快,可以在封装的请求处做个判断