小程序的生命周期、应用级事件、调试

1,088 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

Object wx.getLaunchOptionsSync()

获取小程序的启动时的参数。与App.onLaunch的回调参数一致。它的返回值是一个对象。
返回值:

image.png

image.png

image.png
返回有效referrerInfo的场景

image.png
代码示例:

image.png

Object wx.getEnterOptionsSync()

获取本次小程序启动时的参数。如果小程序时冷启动,返回值与onLaunch是一致的,如果是热启动返回值与onShow一致。
返回值

image.png

image.png

image.png

image.png

应用级事件(绑定和解绑)

wx.onUnhandledRejection(function listener)

promise没有被处理的时候,该事件与App.onUnhandledRejection的回调时机与参数一致。

image.png

注意

  • 所有的 unhandledRejection 都可以被这一监听捕获,但只有 Error 类型的才会在小程序后台触发报警。

wx.onThemeChange(function listener)

监听系统主题改变事件,该事件与App.onThemeChange的回调时机一致。

image.png

注意

  • 只有在全局配置"darkmode": true时才会触发此事件。

wx.onPageNotFound(function listener)

监听小程序要打开的页面不存在事件,该事件与App.onPageNotFound的回调时机一致。

image.png

注意

  • 开发者可以在回调中进行页面重定向,但必须在回调中同步处理,异步处理(例如 setTimeout 异步执行)无效。
  • 若开发者没有调用 [wx.onPageNotFound] 绑定监听,也没有声明 App.onPageNotFound,当跳转页面不存在时,将推入微信客户端原生的页面不存在提示页面。
  • 如果回调中又重定向到另一个不存在的页面,将推入微信客户端原生的页面不存在提示页面,并且不再第二次回调。

wx.onLazyLoadError(function listener)

监听小程序异步组件加载失败事件。

image.png

注意

  • 加载异步组件通常需要下载分包,若分包下载超时,则会触发 errMsg 为 "loadSubpackage: timeout" 的回调,默认超时等待时间为 5 秒。
  • 可以通过第二个参数指定超时时间(单位:ms),该设置全局有效,多次指定超时时间则覆盖前面。
  • 分包确认下载失败时,会再次触发 errMsg 为 "loadSubpackage: fail" 的回调。
  • 若在页面中使用该接口进行监听,请确保在必要时手动调用 offLazyLoadError 取消监听,以避免非预期的内存泄漏。

wx.onError(function listener)

监听小程序错误事件。如脚本错误或API调用报错等,该事件与App.onError的回调时机与参数一致。

wx.onAudioInterruptionEnd(function listener)

监听音频中断结束事件。在收到 onAudioInterruptionBegin 事件之后,小程序内所有音频会暂停,收到此事件之后才可再次播放成功

wx.onAudioInterruptionBegin(function listener)

监听音频因为受到系统占用而被中断开始事件。以下场景会触发此事件:闹钟、电话、FaceTime 通话、微信语音聊天、微信视频聊天、有声广告开始播放、实名认证页面弹出等。此事件触发后,小程序内所有音频会暂停.
当系统的一些操作把音频占用之后,小程序的音频就暂停了,比如来电话等等。这时候就需要使用该事件。

wx.onAppShow(function listener)

监听小程序切换前台事件。该事件与App.onShow的回调参数一致。

image.png

image.png

image.png

image.png

image.png

wx.onAppHide(function listener)

监听小程序切后台事件。该事件与App.onHide的回调时机一致。

wx.offUnhandledRejection(function listener)

移除未处理的 Promise 拒绝事件的监听函数

function listener

onUnhandledRejection 传入的监听函数。不传此参数则移除所有监听函数 image.png

wx.offThemeChange(function listener)

移除系统主题改变事件的监听函数

image.png

wx.offPageNotFound(function listener)

移除小程序要打开的页面不存在事件的监听函数

image.png

wx.offLazyLoadError(function listener)

移除小程序异步组件加载失败事件的监听函数

image.png

wx.offError(function listener)

移除小程序错误事件的监听函数

image.png

wx.offAudioInterruptionEnd(function listener)

移除音频中断结束事件的监听函数

image.png

wx.offAudioInterruptionBegin(function listener)

移除音频因为受到系统占用而被中断开始事件的监听函数

image.png

wx.offAppShow(function listener)

移除小程序切前台事件的监听函数

image.png

wx.offAppHide(function listener)

移除小程序切后台事件的监听函数

调试

  • wz.setEnableDebug:设置是否打开调试开关。此开关对正式版也能生效

image.png

  • wx.getRealtimeLogManager():获取实时日志管理器对象
  • wx.getLogManager(Object object):获取日志管理器对象
  • console

image.png