问题出现:
调用 SDK 进行人脸识别,退出后应该返回原页面,而实际上却返回到了最底层的 window(偶现)。
开始定位
- 断点跳转首页的代码,没有命中(说明不是直接跳转的)
- 在应用侧断点相关流程,日志正常(说明人脸识别流程没问题,只是退出有问题)
- 排查人脸识别 SDk 退出处理逻辑,发现与 uiwindow 有关,断点图层后发现是 window 混淆的问题,把多余创建的 window 删掉,确保 SDK 每次获取到的是它自己创建出来的 window 即可
UIWindow 相关知识点
-
key window: 能接受事件的 window 才是 key window
这也是为什么window 相关的通知中,有
didBecomeKeyNotification和didBecomeVisibleNotification之分