que puedo porque pantalla notifica miniatura hacer desactivar den cuenta como capturas captura aparece iphone screenshot detection notifications

notifica - porque no puedo hacer captura de pantalla en mi iphone



¿Notificación o detección de captura de pantalla antes de ser tomada? (5)

¿Hay alguna notificación u otro mecanismo para informar que el usuario está tomando una captura de pantalla con los botones de inicio / encendido?

He visto hilos sobre querer deshabilitar la toma de capturas de pantalla, pero eso no es lo que estoy buscando hacer.

Tengo un cliente fotógrafo que está preocupado de que sus trabajos se copiarán por medio de usuarios que tomarán capturas de pantalla y pensé que si existía la oportunidad de colocar una marca de agua en la imagen antes de tomar la captura de pantalla, eso disiparía sus temores.


Desde iOS 7 existe el UIApplicationUserDidTakeScreenshotNotification . Entonces, hacer algo como esto debería detectar las capturas de pantalla:

- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(userDidTakeScreenshot) name:UIApplicationUserDidTakeScreenshotNotification object:nil]; } - (void)userDidTakeScreenshot { // Screenshot taken, act accordingly. }

Finalmente, no te olvides de quitar el observador:

- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationUserDidTakeScreenshotNotification object:nil]; }


Esta es una forma que podría funcionar, aunque estoy totalmente en contra de las pautas de la interfaz de usuario, estoy seguro. Si obliga al usuario a tener su dedo en la pantalla para mostrar la imagen, no creo que puedan crear capturas de pantalla. Porque tan pronto como presionas las teclas de inicio y bloqueo para tomar la captura de pantalla, la pantalla parece comportarse como si no hubiera dedos tocándola. Intente tomar una captura de pantalla mientras se mueve entre las pantallas de inicio para ver a qué me refiero.

No es una solución perfecta de ninguna manera, pero puede integrarlo en el diseño de su aplicación si es realmente inteligente sin que le reste demasiado valor a la experiencia del usuario (¡aunque es un desafío difícil!). Sin embargo, creo que esto puede permitirle mostrar ilustraciones / fotos sin permitir que los usuarios tomen capturas de pantalla.


Lo que realmente se necesita es una notificación que se envía antes de que ocurra la captura de pantalla real. Un método de delegado o algún otro medio para darle a la aplicación una oportunidad de captura de pantalla en vuelo para volver a dibujar su contenido antes de que ocurra la captura.

Y no hay uno.


AL USAR ESTA RESPUESTA, USTED RECIBE NOTIFICACIÓN DESPUÉS DE TOMAR SCREENSHOT.

iOS 11 y Swift 4

Tres sencillos pasos: -

1. Agregue el siguiente 👇 observador a su ViewController o cualquier otro lugar que desee

NotificationCenter.default.addObserver(self, selector: #selector(screenShotTaken(notification:)), name: NSNotification.Name.UIApplicationUserDidTakeScreenshot, object: nil)

2. Método de ejemplo (abajo) El método se activará cuando se haya tomado la captura de pantalla

@objc func screenShotTaken(notification: Notification) { print(notification) print("Screenshot has taken, do something you want ") }

3. Elimine su observador (Buena forma de eliminar el observador en deinit)

deinit { NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIApplicationUserDidTakeScreenshot, object: nil) }


La notificación de Darwin a PictureWasTakenNotification se enviará cuando el usuario tome una captura de pantalla. Sin embargo, esto se envía después de tomar la captura de pantalla.

(No se enviarán notificaciones antes de tomar la captura de pantalla.)