- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个应用程序,它包含受版权保护的内容。我不希望用户记录它。如果他们开始录制屏幕,我希望我的应用能够捕捉到这一点。录屏时catch函数是什么?
我不想阻止,我想了解并捕获它。
注意:一些答案表明解决方案包括 AirPlay 和 Mirroring。我想要的是只捕捉在应用程序之前或期间开始的屏幕录制。我想允许用户使用 AirPlay 和镜像。
最佳答案
SWIFT 5.0
为了防止屏幕录制,我创建了一个单独的类 ScreenRecordingProtoector
女巫看起来像这样:
final class ScreenRecordingProtoector {
private var window: UIWindow? {
if #available(iOS 13.0, *) {
return (UIApplication.shared.connectedScenes.first?.delegate as? SceneDelegate)?.window
}
return (UIApplication.shared.delegate as? AppDelegate)?.window
}
func startPreventing() {
NotificationCenter.default.addObserver(self, selector: #selector(preventScreenShoot), name: UIScreen.capturedDidChangeNotification, object: nil)
}
@objc private func preventScreenShoot() {
if #available(iOS 13.0, *) {
if UIScreen.main.isCaptured {
window?.isHidden = true
} else {
window?.isHidden = false
}
}
}
// MARK: - Deinit
deinit {
NotificationCenter.default.removeObserver(self)
}
}
然后我在 AppDelegate 上面创建一个变量 didFinishLaunchingWithOptions
let screenRecordingProtoector = ScreenRecordingProtoector()
然后我调用里面 didFinishLaunchingWithOptions
screenRecordingProtoector.startPreventing()
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
private let preventService = PreventCapturingService()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
preventService.startPreventScreenRecording()
return true
}
}
它在 Swift 5.0 中对我来说很好用
关于ios - iOS 11 中如何判断是否录屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46217459/
如何从 Android-Native-Screen 打开 flutter 屏幕? 我开了一个 Android-Native-Screen 从现有我们 flutter 项目 . 所以,在 Android
有人知道如何使用 java 和 google chrome 最大化 selenium webdriver 窗口吗? 我已经尝试过一些命令,例如maximize () window (),但没有成功。
Redmi A65 智能电视今天正式开卖,4K 超高清大屏 + 立体声扬声器,到手价 2599 元。 IT之家了解到,Redmi A65 智能电视搭载了一块 65 英寸 4K 屏,支持 HDR
9 月 26 日消息小米电视大师「至尊纪念版」将在 9 月 29 日发布,根据今天小米集团大家电部总经理李肖爽放出的海报显示,小米电视大师至尊版有两款。 小米电视大师「至尊纪念版」是小米首款
华为手环 6 今日在海外正式发布,英文名 Band 6。这款产品是华为手环 4 的升级版,屏幕尺寸由 0.96 英寸升级为 1.47 英寸 AMOLED 屏,分辨率 194 x 368。该手环外形类
我是一名优秀的程序员,十分优秀!