我的App非常敏感,必须防止录屏
使用
UIScreen.main.isCaptured
和 UIScreen.capturedDidChangeNotification
工作得很好,但对于 iOS 18,它已被弃用,不再工作,苹果所说的替代品是 sceneCaptureState 我在演示应用程序中尝试过,发现它只能工作对于基于场景的应用程序,但它不适用于旧结构,所以现在我遇到了这个问题,
我的应用程序非常大,根本不支持场景,我该怎么做才能防止屏幕录制?
注意以下代码是我正在使用的代码,不适用于非基于场景的应用程序
window.traitCollection.sceneCaptureState == .active
如果您杀死该应用程序并再次重新打开它,此行会给我错误的值
registerForTraitChanges([UITraitSceneCaptureState.self])
这仅用于观察变化并且工作正常
首次打开应用程序时启动录制屏幕
window.traitCollection.sceneCaptureState == .active
这条线给了我错误的值,而它应该给我真实的值
注意:我的应用程序不支持任何场景配置
这个问题可以通过将操作系统升级到iOS18 beta(22A5325f)或更高版本来解决