如果App处于后台,iOS检测屏幕截图

时间:2015-02-16 09:34:04

标签: ios objective-c iphone screenshot

我是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];
}

但是,如果应用程序进入后台,然后我拍摄屏幕截图,警报不会显示。 我希望你能理解我的问题。

我原谅我的英语。

2 个答案:

答案 0 :(得分:2)

UIAlert仅在您的应用位于前台时才有效,您可以通过UILocalNotification吸引用户注意。

此外,只有当您真正在后台运行时,您才能检测到屏幕截图。所以你的app应该是VOIP,Stream音频,配件app等。

默认您的应用不会在后台运行。

答案 1 :(得分:0)

“UIApplicationUserDidTakeScreenshotNotification”:  我认为没有办法检测截图当你的应用程序在后台或暂停时。 此通知仅在您的应用程序位于前台时通知。