收藏
回答

onThemeChange 回调函数在小程序从微信外直接 onShow 时会重复错误调用

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug onThemeChange 微信iOS客户端 8.0.23 2.24.5

复现操作路径(仅 iOS 端出现此 Bug):

  1. 打开小程序,打开调试(此时会自动关闭小程序),再次打开小程序
  2. 直接 Home 回到手机桌面
  3. 再次点击微信 APP,此时会直接打开小程序
  4. 点击 vConsole 查看控制台信息,可以看到 onThemeChange 被连续调用了两次,且两次的回调结果不一样,第一次的结果是错误的,第二次的结果是正确的


出错截图

可以看到控制台中打印了两条 onThemeChange,且两条的内容不一致,实际上截图的手机正处于 dark 模式下



最后一次编辑于  2022-06-12
回答关注问题邀请回答
收藏

1 个回答

  • DylanQ
    DylanQ
    01-16

    iOS在进入后台时,会分别截取app在light和dark模式下的截图,用于系统主题切换的同时对后台app预览视图进行切换,所以确实会切换多次light/dark模式,建议小程序正常响应onThemeChange事件即可,否则系统截取的图片可能会出现异常

    如果确实有必要忽略这种情况下的onThemeChange,可以在onHide后自行忽略

    01-16
    有用 1
    回复
登录 后发表内容