uni-app onlaunch中跳转 ios偶尔跳转到首页

uni-app onlaunch中跳转 ios偶尔跳转到首页

# 操作步骤:
ios应用切到后台,启动应用,onlaunch中跳转

# 预期结果:
跳到指定页

# 实际结果:
跳到首页

# bug描述:
启动app后跳转到指定页面,如果应用在后台待太久,就会跳到首页,不进入目标页
8 回复

启动app后跳转到指定页面 这个具体是怎么操作的,请详细描述一下,我们尝试复现一下问题

更多关于uni-app onlaunch中跳转 ios偶尔跳转到首页的实战教程也可以访问 https://www.itying.com/category-93-b0.html


暂时我们自己复现过几次,是打开应用之后然后在后台待一段时间,然后推送消息,去点击消息,就直接到首页了。我们的业务逻辑现在是用unipush接受消息,收到消息点击后进行跳转,目前安卓已经没问题了,只有ios会偶尔出现这个跳不过去的问题

回复 大凤: push消息原生收到后在通知给 uni js 层有个时间差,你尝试加个延时跳转页面试试看

回复 DCloud_iOS_XHY: 亲,我已经加了1000毫秒的一个延时跳转,还是有那个不跳转到指定页面,跳转到了首页

回复 DCloud_iOS_XHY: 目前是我们自己拿着手机测试是复现不出这个问题的,也是大体猜测可能有个时间差问题。 除了延时跳转还有其他方法吗?

onlaunch 逻辑是写在什么地方的

是在app.vue中,写的跳转。不是每个都跳转不过去,但是概率很大。我们自己一般复现不出来,只能用户反馈的

在iOS上,应用从后台唤醒时,onLaunch可能不会重新执行,导致跳转逻辑失效。这是因为iOS应用在后台挂起后,再次唤醒时可能直接恢复之前的状态,而不是冷启动。

建议将页面跳转逻辑从onLaunch移到onShow中处理,并添加状态判断,确保跳转只执行一次。例如:

let hasLaunched = false

export default {
  onShow() {
    if (!hasLaunched) {
      hasLaunched = true
      // 执行跳转逻辑
      uni.reLaunch({
        url: '/pages/target/target'
      })
    }
  }
}
回到顶部