是否有通知或其他机制通知用户正在使用主页/电源按钮进行屏幕截图?
我已经看到有关想要禁用截屏的线程,但这不是我想要做的。
我有一个摄影师客户,他担心他的作品会被用户截屏复制,我想如果有机会在截屏之前在图像上加水印,那会减轻他的恐惧。
是否有通知或其他机制通知用户正在使用主页/电源按钮进行屏幕截图?
我已经看到有关想要禁用截屏的线程,但这不是我想要做的。
我有一个摄影师客户,他担心他的作品会被用户截屏复制,我想如果有机会在截屏之前在图像上加水印,那会减轻他的恐惧。
这是一种可能可行的方法,尽管我敢肯定它会完全违反用户界面指南。如果您强迫用户将手指放在屏幕上以显示图像,那么我认为他们无法创建屏幕截图。因为一旦你按下 home+lock 键来实际截屏,屏幕的行为就好像没有手指触摸它一样。尝试在主屏幕之间移动时截取屏幕截图以了解我的意思。
无论如何都不是一个完美的解决方案,但如果你真的很聪明,你可以将它应用到你的应用程序设计中,而不会过多地降低用户体验(尽管这是一个艰巨的挑战!)。不过,我相信这可以让您在不让用户截屏的情况下显示艺术品/照片。
当PictureWasTakenNotification
用户截取屏幕截图时,将发送 Darwin 通知。但是,这是在截取屏幕截图后发送的。
(在截取屏幕截图之前不会发送任何通知。)
从 iOS 7UIApplicationUserDidTakeScreenshotNotification
开始存在。所以做这样的事情应该检测到截图:
- (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];
}
真正需要的是在实际截屏发生之前发送的通知。一种委托方法或其他一些方法,可以在抓取发生之前为应用程序提供动态截屏机会来重绘您的内容。
而且没有。