Уведомление или обнаружение снимка экрана?

Есть ли уведомление или другой механизм получения информации о том, что пользователь делает снимок экрана с помощью кнопок дома / питания?

Я видел потоки о желании отключить снятие скриншотов, но это не то, что я ищу.

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

5 Solutions collect form web for “Уведомление или обнаружение снимка экрана?”

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

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

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

PictureWasTakenNotification Darwin будет отправлено, когда пользователь сделает снимок экрана. Тем не менее, это отправляется после снятия снимка экрана.

(Никакие уведомления не будут отправлены до того, как будет сделан снимок экрана.)

Начиная с iOS 7 существует UIApplicationUserDidTakeScreenshotNotification . Итак, что-то вроде этого должно обнаружить скриншоты:

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

Наконец, не забудьте удалить наблюдателя:

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

На самом деле нужно уведомление, которое отправляется до фактического захвата экрана. Метод делегата или некоторые другие способы предоставления приложениям возможности «скриншотов в полете» перерисовать ваш контент до захвата.

И нет никого.

  • iOS: как определить, когда анимация закончена?
  • как перезапустить iPHone / iPad Bluetooth LE после того, как связь зависает
  • Почему мое приложение по-прежнему отклонялось после исключения файлов из резервной копии iCloud с помощью этого кода?
  • Проверьте, содержит ли строка специальные символы в Swift
  • Как рисовать тень под UIView?
  • UICollectionReusableView меняет заголовок заголовка с анимацией
  • iOS - Преобразование UIImage в память vImage
  • AVAudioPlayer setVoume: x, когда x> 1,0
  • Создание файла базы данных SQLite3 через Objective-C
  • iOS Today Widget - может ли приложение определить, включено ли оно / отключено?
  • Приложение iPhone зависает при выборе TableViewCell - с перерывами, после паузы / перерыва
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.