Utilice Swift 4+
NOTA: Estoy detectando la captura de pantalla mientras estoy dentro de la extensión de iMessage, no en la vista estándar de iMessage.
Actualización: se me ocurrió una solución funcional que verifica la biblioteca de fotos durante el período de información confidencial cada 0,3 segundos más o menos para verificar si se ha agregado una nueva captura de pantalla. Si el usuario no da permiso a la biblioteca de fotos, no le mostrará el contenido hasta que lo habilite. Sin embargo, sigo buscando otras soluciones creativas que no impliquen necesariamente un proceso tan tedioso.
Tengo una extensión de iMessage y estoy tratando de detectar capturas de pantalla. Probé con todos los observadores que encontré en línea y, por alguna razón, no registra capturas de pantalla.
VerAparecerá()
UIScreen.main.addObserver(self, forKeyPath: "captured", options: .new, context: nil)Observador
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) { if (keyPath == "captured") { let isCaptured = UIScreen.main.isCaptured print(isCaptured) screenshot() //screenshot() sends a message alerting the message was screens hotted. However, the print statement didn't even run. } }VerDesaparecerá()
UIScreen.main.removeObserver(self, forKeyPath: "captured", context: nil)También probé el Centro de notificaciones predeterminado estándar
let mainQueue = OperationQueue.main NotificationCenter.default.addObserver(forName: UIApplication.userDidTakeScreenshotNotification, object: nil, queue: mainQueue) { notification in // executes after screenshot print("Screenshotted") self.screenshot() }Para las personas que afirman que no es posible detectar capturas de pantalla dentro de una extensión de iMessage porque es una extensión y no una aplicación completa, este desarrollador ha podido hacerlo con éxito Ejemplo de trabajo
Tal vez sea un poco exagerado, pero puede transformar su imagen en un video protegido por DRM y el sistema evita cualquier captura de pantalla / uso compartido de pantalla / grabación de pantalla de videos protegidos por DRM.