今天开发客户忽然来了需求,禁止用户截取app内的二维码。我当时一听就懵逼了啊,截屏可是系统级别的,开发肯定是没有那么大的开发权限的,我当时就向客户反应,可是大家都知道,甲方是大哥,然后就没然后了,我这里也被逼无奈只能去对应了。
其实禁止截图没有任何意义,因为完全可以其他手机拍照,所以客户这个需求没啥用,但是客户既然说要有,我也没有办法
然后开始查找有没有什么监听截图的事件,果然被我发现了。
第一种 UIApplicationUserDidTakeScreenshotNotification (可以使用,但是不满足我的需求)
UIApplicationUserDidTakeScreenshotNotification
通过这个通知可以接受截屏事件,于是乎我很激动写了下面代码。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(userDidTakeScreenshotNotification:)
name:UIApplicationUserDidTakeScreenshotNotification object:nil];
return YES;
}
// Home+Power键截屏后通知响应的方法
- (void)userDidTakeScreenshotNotification:(NSNotification *)notification {
// 下面这张图与硬件截的图并不是同一张,这里再次使用代码截屏是为了获取用户截屏图片。
}
然后我就在这里一顿操作,把二维码盖住了,当时我就是非常的激动,可是当我打开相册的时候我就哭了
因为我发现相册里出现了两个图片,一个是有二维码的一个是没有的,效果如下图