Предотвратить скриншот вручную в IOS Objective-C - PullRequest
0 голосов
/ 11 ноября 2019

В iOS мое требование не разрешать пользователю делать снимки экрана вручную из моего приложения, либо запрещать, либо стирать захваченный снимок экрана . Как?

Ответы [ 3 ]

0 голосов
/ 11 ноября 2019

Нет регулярного решения вашей проблемы!

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

НО что, если пользователь беретскриншот AssistiveTouch ?!

ИЛИ что вы хотите сделать, если пользователь записывает экран и снимает скриншот с видео?

Я думаю, что лучше изменить свою стратегию, например, уведомить владельцаснимок для снимка экрана другим (например, SnappChat)!

0 голосов
/ 14 ноября 2019

Единственное решение состоит в том, чтобы моделировать элементы управления iOS, которые есть в вашем View, с помощью видео с DRM.

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

Вы можете попробовать сделать это самостоятельно или использовать коммерческое решение, такое какследующее: https://screenshieldkit.com

0 голосов
/ 11 ноября 2019

Редактировать: для тех, кто проголосовал вниз, я сказал, что не рекомендую это. Я не думаю, что это хорошая вещь, но это решение вопроса ОП. Прогнозы должны основываться на правильной и неправильной методологии, а не на том, если вы согласны с характером проблемы. Я лично считаю, что это плохая «функция» для включения в приложение, и это может привести к ужасному взаимодействию с пользователем, но если босс OP требует, чтобы это было добавлено, это то, как это должно быть сделано, не стреляйте в мессенджера.


Исходное сообщение следует:

Возможно, но я не рекомендую это из-за места для ошибки. В прошлом это было проще сделать, в iOS13 вам придется делать это следующим образом:

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

Предупреждение: бывают случаи, когда пользователь может получить фотографию, используя ваше приложение, которое не является снимком экрана (например, он получил воздушную каплю), и теперь вы будете подделывать его фотографии, что очень плохо. Чтобы предотвратить это, вам, возможно, придется постоянно использовать кодирование пикселей значения ключа на экране, например, первые 3 пикселя экрана - это 3 очень специфических значения RGB, таким образом, если обнаруживается новая фотография и первые 3 пикселя являютсяТочные значения RGB, которые вы знаете, это скриншот вашего приложения, а не просто еще одна фотография, которая была каким-то образом сохранена, когда пользователь использовал приложение.

...