如何防止 iOS 18 的屏幕录制,isCaptured 已弃用,而替换 sceneCaptureState 不适用于非基于场景的应用程序?

问题描述 投票:0回答:1

我的App非常敏感,必须防止录屏

使用

UIScreen.main.isCaptured
UIScreen.capturedDidChangeNotification
工作得很好,但对于 iOS 18,它已被弃用,不再工作,苹果所说的替代品是 sceneCaptureState 我在演示应用程序中尝试过,发现它只能工作对于基于场景的应用程序,但它不适用于旧结构,所以现在我遇到了这个问题, 我的应用程序非常大,根本不支持场景,我该怎么做才能防止屏幕录制?

注意以下代码是我正在使用的代码,不适用于非基于场景的应用程序

window.traitCollection.sceneCaptureState == .active
如果您杀死该应用程序并再次重新打开它,此行会给我错误的值

registerForTraitChanges([UITraitSceneCaptureState.self])
这仅用于观察变化并且工作正常

首次打开应用程序时启动录制屏幕

window.traitCollection.sceneCaptureState == .active
这条线给了我错误的值,而它应该给我真实的值

注意:我的应用程序不支持任何场景配置

swift scenekit recording uiscreen ios18
1个回答
0
投票

这个问题可以通过将操作系统升级到iOS18 beta(22A5325f)或更高版本来解决

© www.soinside.com 2019 - 2024. All rights reserved.