收藏
回答

通过wx.setEnableDebug打开调试时,确认后小程序没有自动退出

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.setEnableDebug 微信iOS客户端 7.0.8 2.9.4

在代码中使用 wx.wx.setEnableDebug({ enableDebug: true }) 来强制打开调试,但是弹出“重新打开后生效”的对话框后,点击确认却没有自动退出小程序。

然后小程序就陷入 __wxConfig.debug 为 true 但实际上调试并没有完全打开的状态(有 vConsole,但调试模式下不校验域名的特性不生效)。

众所周知iOS的微信无法单独结束小程序进程,而如果结束微信进程则调试状态又会被重置。

以下是一直以来都很有效的强制非线上版本打开调试的代码,然而最近因为这个bug变得不可用了:

const systemInfo = wx.getSystemInfoSync();
console.info(__wxConfig);
console.info(systemInfo);
if (
  this.globalData.environment !== 'prod'
  && __wxConfig
  && __wxConfig.envVersion !== 'release'
  && !__wxConfig.debug
  && wx.canIUse('setEnableDebug')
  && systemInfo
  && systemInfo.platform !== 'devtools'
) {
  wx.setEnableDebug({ enableDebug: true });
}


BTW,右上角手工打开调试的操作,点击确认后还是能自动退出小程序的,目前仅仅是通过 wx.setEnableDebug 打开时有此问题

------------------------

12/12 更新:添加代码片段,可以复现。只要弹框之后产生页面重定向(wx.redirectTo),关闭小程序的动作就会失效。

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

1 个回答

  • 是小白啊
    是小白啊
    2019-12-11

    测试了下iPhone,微信版本:7.0.8,是正常推出的,你那是必现吗?

    2019-12-11
    有用
    回复 7
    • 2019-12-11
      是的,必现
      2019-12-11
      回复
    • 是小白啊
      是小白啊
      2019-12-11回复
      具体的机型以及微信版本是?
      2019-12-11
      回复
    • 2019-12-12
      我这边两台机子,iPhone8/13.2.3 和 iPhone7P/13.1.2,微信都是7.0.8,都能复现
      2019-12-12
      回复
    • 是小白啊
      是小白啊
      2019-12-12回复
      麻烦在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,麻烦提供一下微信号,复现的具体时间点
      2019-12-12
      回复
    • 2019-12-12回复是小白啊
      日志已上传,微信号 goldlin,复现时间点在12/12 14:58-15:00间
      2019-12-12
      回复
    查看更多(2)
登录 后发表内容
问题标签