uni-app app使用uni.onCreateVueApp回调中使用mixin设置生命周期的监听没有被调用

uni-app app使用uni.onCreateVueApp回调中使用mixin设置生命周期的监听没有被调用

开发环境 版本号 项目创建方式
Mac 14.6.1 (23G93) HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Mac

HBuilderX类型:正式

HBuilderX版本号:4.76

手机系统:Android

手机系统版本号:Android 10

手机厂商:华为

手机机型:Mate 30

页面类型:vue

vue版本:vue3

打包方式:离线


操作步骤:

  • 打开app

预期结果:

  • 启动app后打印onLaunch

实际结果:

  • 启动app后没有打印onLaunch

bug描述:

实测在uni-app编译成安卓版本时,以下代码的 lifecycle 对象的 onLaunch 方法没有被调用,但编译成网页后会调用

const lifecycle = {  
  onLaunch(options) {  
    console.log('onLaunch')  
  }  
}  
uni.onCreateVueApp((app) => {  
  app.mixin(lifecycle)  
})

更多关于uni-app app使用uni.onCreateVueApp回调中使用mixin设置生命周期的监听没有被调用的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

通过调试并修改uni统计2也存在一样的问题

更多关于uni-app app使用uni.onCreateVueApp回调中使用mixin设置生命周期的监听没有被调用的实战教程也可以访问 https://www.itying.com/category-93-b0.html


微信小程序、网页、鸿蒙APP都正常,但安卓和iOS的离线打包app就有问题

图1是app的日志
图2是网页的日志


在 uni-app 的 Vue 3 环境中,使用 uni.onCreateVueApp 回调配合 app.mixin 设置生命周期监听时,onLaunch 可能不会触发,这是因为 onLaunch 是 uni-app 应用级别的生命周期钩子,而非 Vue 组件生命周期。app.mixin 主要用于混入 Vue 组件的选项(如 onMounted),而 onLaunch 属于 uni-app 的 App 生命周期,应在 App.vueonLaunch 中直接定义,而不是通过 mixin 注入。

解决方案

  1. App.vue 中直接使用 onLaunch
    export default {
      onLaunch(options) {
        console.log('onLaunch')
      }
    }
回到顶部