Предотвращение захвата экрана в приложении iOS

Мне нужно предотвратить захват экрана пользователями моего приложения по соображениям безопасности. Отображаемое содержимое является конфиденциальным и не должно копироваться на устройство. Я видел один ответ на Stack Overflow, но для Android.

Возможно ли как-то в iOS предотвратить захват экрана?

При съемке снимка экрана в галерее одним щелчком нескольких кнопок это очень полезная функция для пользователя, поэтому для предотвращения этого также существует ограниченное требование. Любые указатели?

Ответ 1

Невозможно предотвратить скриншоты целиком. Вы можете сделать то, что делает Snapchat, что требует от пользователя касаться экрана для просмотра любой информации, отображаемой вами. Это происходит из-за того, что прерывание экрана экрана системы прерывается. Это не идеальный метод, и вы не можете помешать пользователям делать скриншоты в 100% случаев.

Подробнее: iOS Обнаружение скриншота?

Ответ 2

Другой проблемой является захват экрана в wetware - как у человека, который захватывает экран другим устройством, например камерой или другим телефоном. Даже если вы предотвратите это в приложении, невозможно предотвратить, чтобы кто-то фотографировал экран

Ответ 3

Возможным обходным решением является Yovo. Я только что видел эту демоверсию, которая взорвала мой разум!

http://vimeo.com/108244650

Это чрезвычайно умный способ скрыть скриншот и даже частично обрабатывать дело "wetware", возбужденное JimBobBennet.

Вы устанавливаете маску размытия поверх изображения (шаблон забора используется в приложении, но любой шаблон будет делать) и переместите его как быструю скорость. Если пользователь берет скриншот, он получает неподвижное изображение одного кадра, который сам по себе затенен.

Он использует тот факт, что наши мозги могут скомпоновать изображение за движущейся маской - подобно тому, как вы можете "видеть" лезвия движущегося вентилятора.

Чтобы захватить изображение, вам нужно будет записать его видео, что довольно сложно.

Единственной проблемой здесь может быть IP - Yovo утверждает, что 300+ патентов...

Ответ 4

Я слышал, что вы можете прослушивать событие с экрана, используя UIApplicationUserDidTakeScreenshotNotification

 NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationUserDidTakeScreenshotNotification
                                                  object:nil
                                                   queue:mainQueue
                                              usingBlock:^(NSNotification *note) {
                                                  // executes after screenshot
                                                  NSLog(@"Screenshot Detection : %@", note);
                                                  UIAlertView *screenshotAlert = [[UIAlertView alloc] initWithTitle:@"Screenshot Detected" message:@"Oh Oh no screenshot bruhh" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
                                                  [screenshotAlert show];
                                              }];

Что делать, если вы могли сразу удалить файл скриншота, когда он был сделан?

Ответ 5

Это было какое-то время, но я просто наткнулся на ScreenShieldKit, который является запатентованной технологией, используемой приложением для обмена сообщениями Confide, Что он делает, так это то, что он позволяет пользователю делать скриншоты, но содержимое на пустом месте пустое. Недавно они выпустили версию iOS.