在uniapp打包安卓app 和 安卓真机调试时遇到的问题 暂时没有尝试ios 在h5运行环境下本问题不存在
在点击进入一个页面后无任何操作直接在onload onshow这些页面生命周期钩子中操作跳转其他页面不生效
onLoad() {
uni.redirectTo({
url: '/bundle/pages/user_vip/user_vip'
})
}
刚遇到这个问题的时候以为是页面路径或者其他的一些配置问题,同代码在h5下正常,找半天没找到问题,而后试了下添加一个按钮点击事件去跳转
<button @click="goVip">测试</button>
goVip(){
uni.redirectTo({
url: '/bundle/pages/user_vip/user_vip'
})
},
就发现点击事件是可以正常跳转的
那就说明这段执行代码本身没有问题,于是就想到了用异步的方式执行试试
promise方式
onLoad() {
new Promise(resolve=>{
resolve()
}).then(res=>{
uni.redirectTo({
url: '/bundle/pages/user_vip/user_vip'
})
})
}
页面还是无法正常跳转
还试了下this.nextTick本质上也是类似一个promise 生成一个微任务,结果果然也一样不行
既然微任务不行我再试试宏任务
setTimeout方式
setTimeout(()=>{
uni.redirectTo({
url: '/bundle/pages/user_vip/user_vip'
})
},500)
这下可以了 进入页面后可以直接跳转了
在后续还有一些尝试 比如把setTimeout的延时设置为100 也不能正常跳转 具体的原因受水平限制暂时无法理解了。
最后让我们继续努力学习!