iOS 获取系统截屏事件

作者: 小海豚丶 | 来源:发表于2018-01-03 17:25 被阅读744次

最近看某某App在截屏之后弹出一个分享提示框,感觉挺有意思,于是乎想自己做一下,查阅了一番资料发现So easy,就是监听一个系统通知然后根据需求做处理罢了;下面给出相关代码:

效果.png
1.系统通知名称
UIApplicationUserDidTakeScreenshotNotification

以下是系统给出的说明

// This notification is posted after the user takes a screenshot (for example by pressing both the home and lock screen buttons)
UIKIT_EXTERN NSNotificationName const UIApplicationUserDidTakeScreenshotNotification NS_AVAILABLE_IOS(7_0);
2.注册监听对象

你可以写在想要的页面控制器或者直接放在AppDelegate中,

 [[NSNotificationCenter defaultCenter] addObserver:self
                                          selector:@selector(userDidTakeScreenshot:)
                                              name:UIApplicationUserDidTakeScreenshotNotification
                                            object:nil];

处理方法:

#pragma mark - 用户截屏通知事件
- (void)userDidTakeScreenshot:(NSNotification *)notification {
    NSLog(@"检测到截屏");
    // 手动截取当前屏幕图片
    UIImage *mainScreenshot = [[UIApplication sharedApplication].keyWindow yg_screenshot];

    /*
     自定义处理方法的代码,随意吧
    */

}

以上我用了一个 UIView 的 类做的手动截屏来获取图片,免去了再去获取系统相册图片的麻烦;分类代码如下:

3.获取截屏图片UIImage对象
- (UIImage *)yg_screenshot {
   
   UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, [UIScreen mainScreen].scale);
   [self.layer renderInContext:UIGraphicsGetCurrentContext()];
   UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();
   NSData *imageData = UIImageJPEGRepresentation(image, 0.5);//数值 0 - 1 之间
   image = [UIImage imageWithData:imageData];
   return image;
}

方法很多,看你想怎么写了吧,这里只提供了一种简单点的;

喜欢的话给个赞,土豪的话随意打赏;

相关文章

  • iOS 获取系统截屏事件

    最近看某某App在截屏之后弹出一个分享提示框,感觉挺有意思,于是乎想自己做一下,查阅了一番资料发现So easy,...

  • iOS 获取系统截屏事件

    获取手机的系统截屏事件,例如百度地图,苹果有专门的一个通知来获取,上代码:

  • iOS 获取系统截屏事件

    1.系统通知名称 以下是系统给出的说明 2.注册监听对象 你可以写在想要的页面控制器或者直接放在AppDelega...

  • Android拦截截屏事件

    需求:拦截系统截屏事件,并触发相应操作。 1.用户触发系统截屏事件时,获取到相应的截图。 2.当系统弹窗消失时,显...

  • iOS 截屏&长截屏

    截屏在 iOS 开发中经常用到,本篇文章讲的是监听用户截屏操作,并且获取截屏图片,如果当前是UIScrollVie...

  • iOS开发中iOS10后系统截屏无法获取PDF内容

    PDF加载方法 使用WKWebView加载PDF(iOS10后系统截屏,无法获取到PDF内容) 使用PDFView...

  • iOS屏幕截图功能

    iOS7.0之前的系统,可以通过以下代码实现截屏功能。 iOS7.0之后,系统中封装了截屏的方法- (UIView...

  • iOS开发——监听系统截屏并获得截图

    iOS开发——监听系统截屏并获得截图 项目需要得到获得截屏然后生成自己的分享图,某度能找到的基本都是怎么获取Vie...

  • iOS 应用内截屏分享

    需求:捕获用户截屏操作,并建议用户截屏后的操作。虽然iOS11 有系统的截屏,但 APP 内截屏可便捷操作。 封装...

  • android home键流程解析

    上一篇文章中我们介绍了android系统的截屏事件,由于截屏事件是一种系统全局处理事件,所以事件的处理逻辑不是在A...

网友评论

    本文标题:iOS 获取系统截屏事件

    本文链接:https://www.haomeiwen.com/subject/gffknxtx.html