25

是否有通知或其他机制通知用户正在使用主页/电源按钮进行屏幕截图?

我已经看到有关想要禁用截屏的线程,但这不是我想要做的。

我有一个摄影师客户,他担心他的作品会被用户截屏复制,我想如果有机会在截屏之前在图像上加水印,那会减轻他的恐惧。

4

4 回答 4

7

这是一种可能可行的方法,尽管我敢肯定它会完全违反用户界面指南。如果您强迫用户将手指放在屏幕上以显示图像,那么我认为他们无法创建屏幕截图。因为一旦你按下 home+lock 键来实际截屏,屏幕的行为就好像没有手指触摸它一样。尝试在主屏幕之间移动时截取屏幕截图以了解我的意思。

无论如何都不是一个完美的解决方案,但如果你真的很聪明,你可以将它应用到你的应用程序设计中,而不会过多地降低用户体验(尽管这是一个艰巨的挑战!)。不过,我相信这可以让您在不让用户截屏的情况下显示艺术品/照片。

于 2010-01-26T23:37:48.817 回答
6

PictureWasTakenNotification用户截取屏幕截图时,将发送 Darwin 通知。但是,这是在截取屏幕截图后发送的。

(在截取屏幕截图之前不会发送任何通知。)

于 2010-01-23T04:29:19.250 回答
4

从 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];
}
于 2014-11-03T14:00:11.003 回答
1

真正需要的是在实际截屏发生之前发送的通知。一种委托方法或其他一些方法,可以在抓取发生之前为应用程序提供动态截屏机会来重绘您的内容。

而且没有。

于 2014-11-13T03:05:15.087 回答