我是Xcode和Objective-C的新手,所以我需要你的帮助 我不想有一个应用程序,如果这个应用程序在后台,检测到屏幕截图,例如你按下主页按钮,所以你在主屏幕,如果你现在截图我希望该应用程序显示一个警报在主屏幕上。 我试试这个:
在我的AppDelegate.m
中- (void)applicationDidEnterBackground:(UIApplication *)application {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(userDidTakeScreenshot:) name:UIApplicationUserDidTakeScreenshotNotification object:nil];
}
- (void)userDidTakeScreenshot:(NSNotification *)notification{
NSLog(@"screenshot detected");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Message" message:@"screenshot detected" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"nil];
[alert show];
}
但是,如果应用程序进入后台,然后我拍摄屏幕截图,警报不会显示。 我希望你能理解我的问题。
我原谅我的英语。
答案 0 :(得分:2)
UIAlert
仅在您的应用位于前台时才有效,您可以通过UILocalNotification
吸引用户注意。
此外,只有当您真正在后台运行时,您才能检测到屏幕截图。所以你的app应该是VOIP,Stream音频,配件app等。
默认您的应用不会在后台运行。
答案 1 :(得分:0)
“UIApplicationUserDidTakeScreenshotNotification”: 我认为没有办法检测截图当你的应用程序在后台或暂停时。 此通知仅在您的应用程序位于前台时通知。