我试图在用户关闭应用程序后“锁定”该应用程序-重新打开时要求输入TouchID / FaceID或代码。可以通过以下方式正常工作:
const onAppStateChange = (nextAppState: string) => {
if (nextAppState === 'background') {
Navigation.showOverlay({
component: {
name: 'overlayName',
},
});
}
};
AppState.addEventListener('change', onAppStateChange);
我唯一的问题是应用程序的快照(iOS上的多任务视图中显示的图像)不包含叠加层,因为它是在添加叠加层之前生成的。
在这里找到了对[view snapshotViewAfterScreenUpdates:YES];
的引用:https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html#//apple_ref/doc/uid/TP40007072-CH8-SW27
但是在我可以在RN-land中添加叠加层之前,也触发了UIApplicationDidEnterBackgroundNotification
的iOS事件处理程序。真的很想在JS端处理此问题(添加叠加层)。
此外,我目前仅关注iOS,但针对Android的解决方案也不错。