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

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

开发环境 版本号 项目创建方式
Mac 14.6.1 HBuilderX
Android Android 10
vue3
产品分类:uniapp/App

<p class="content-inner-p">PC开发环境操作系统:Mac</p>
<p class="content-inner-p">手机系统:Android</p>
<p class="content-inner-p">手机厂商:华为</p>
<p class="content-inner-p">手机机型:Mate 30</p>
<p class="content-inner-p">页面类型:vue</p>
<p class="content-inner-p">打包方式:离线</p>

<h2 class="label_show_span">示例代码:</h2>
<article class="markdown-body">
```javascript
const lifecycle = {    
  onLaunch(options) {    
    console.log('onLaunch')    
  }    
}    
uni.onCreateVueApp((app) => {    
  app.mixin(lifecycle)    
})

操作步骤:

打开app

预期结果:

启动app后打印onLaunch

实际结果:

启动app后没有打印onLaunch

bug描述:

实测在安卓和iOS的离线打包app后,以下代码的 lifecycle 对象的 onLaunch 方法没有被调用,但编译成微信小程序、网页、鸿蒙APP都能正常调用 lifecycle 对象的 onLaunch 方法。


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

4 回复

uni.onCreateVueApp 这个API在哪个文档看到的?我怎么没见过

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


看使用到的相关依赖组件,例如uni统计2的相关源代码就有

这个很有用,能监听每个页面或组件的生命周期和做自己的业务,这样不需要在每个页面或组件里添加相同的代码。

在 uni-app 的 uni.onCreateVueApp 回调中使用 mixin 设置生命周期监听,在 App 平台(Android/iOS)未被调用,这是预期行为。uni.onCreateVueApp 主要用于配置 Vue 应用实例,而 App 平台的生命周期(如 onLaunch)由原生层管理,不通过 Vue 的 mixin 机制触发。

在 App 平台,应使用 App.vue 的选项式 API 或组合式 API 来监听生命周期:

  • 选项式 API:在 App.vueexport default 中直接定义 onLaunch 方法。
  • 组合式 API:使用 onLaunch 钩子(需从 [@dcloudio](/user/dcloudio)/uni-app 导入)。

示例(组合式 API):

import { onLaunch } from '[@dcloudio](/user/dcloudio)/uni-app'
onLaunch(() => {
  console.log('onLaunch')
})
回到顶部