最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS錄屏和截屏監(jiān)聽的實(shí)現(xiàn)代碼

 更新時(shí)間:2018年05月10日 13:46:53   作者:關(guān)注見慣就不怪  
本篇文章主要介紹了iOS錄屏和截屏監(jiān)聽的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

最近在做項(xiàng)目安全性方面的工作,需要在APP內(nèi)敏感頁面做防用戶截屏錄屏的功能,就在網(wǎng)上查閱了一些資料,在這里做個(gè)筆記,方便日后查找。

截屏狀態(tài)獲取

編輯相冊中最新照片的方法iOS8之后就已經(jīng)失效,框架“Photos”也在iOS10之后失效。

搜索發(fā)現(xiàn)UIApplication中僅有用戶截屏后的通知,應(yīng)用中只會(huì)收到已經(jīng)截屏的通知并沒辦法干預(yù)。

// 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);

雖然無法直接干預(yù),但可以知道用戶截屏了就可以用其它的方式來限制用戶的行為或者彈出提示告訴用戶。

-(void)viewDidAppear:(BOOL)animated{
  [super viewDidAppear:animated];
  
  [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(screenshots) name:UIApplicationUserDidTakeScreenshotNotification object:nil];
}

-(void)screenshots
{
  UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:nil message:@"[安全提醒]內(nèi)含個(gè)人資金賬戶。不要截圖,錄制或分享給他人以保障資金賬戶安全。" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"確定", nil];
  [alert1 show];

-(void)dealloc
{
  [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationUserDidTakeScreenshotNotification object:nil];
}

錄屏狀態(tài)獲取

iOS 11 SDK 中新增了UIScreen的API用以告知應(yīng)用當(dāng)前屏幕正在錄屏。當(dāng)UIScreen.isCaptured 為true時(shí),表示當(dāng)前屏幕正在被錄制、鏡像或被Airplay 發(fā)送。

當(dāng)錄屏狀態(tài)發(fā)生變化時(shí),UIKit會(huì)發(fā)送UIScreenCapturedDidChange的notification。

基于此,我們可以在應(yīng)用中接收此通知,來對用戶的錄屏行為做相應(yīng)的處理

-(void)viewWillAppear:(BOOL)animated{
  [super viewWillAppear:animated];

//監(jiān)測當(dāng)前設(shè)備是否處于錄屏狀態(tài)
  UIScreen * sc = [UIScreen mainScreen];
  if (@available(iOS 11.0, *)) {
    if (sc.isCaptured) {
      NSLog(@"正在錄制~~~~~~~~~%d",sc.isCaptured);
      [self screenshots];
    }
  } else {
    // Fallback on earlier versions
  }
  if (@available(iOS 11.0, *)) {
//檢測到當(dāng)前設(shè)備錄屏狀態(tài)發(fā)生變化
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(screenshots) name:UIScreenCapturedDidChangeNotification object:nil];
  } else {
    // Fallback on earlier versions
  }
}

-(void) screenshots
{
  UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:nil message:@"[安全提醒]內(nèi)含個(gè)人資金賬戶。不要截圖,錄制或分享給他人以保障資金賬戶安全。" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"確定", nil];
  [alert1 show];

-(void)dealloc
{
  if (@available(iOS 11.0, *)) {
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIScreenCapturedDidChangeNotification object:nil];
  } else {
    // Fallback on earlier versions
  }
}

上述監(jiān)測錄屏狀態(tài)只是在iOS11之后,而且只是單單的檢測到錄屏狀態(tài)并且沒有辦法去關(guān)閉錄屏狀態(tài)或者修改錄制到的內(nèi)容,至于在iOS11之前的錄屏手段的監(jiān)測暫時(shí)還沒查到,有哪位大神知道的話麻煩告知小弟,在此謝過。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Swift 訪問權(quán)限的資料整理

    Swift 訪問權(quán)限的資料整理

    這篇文章主要介紹了Swift 訪問權(quán)限的資料整理的相關(guān)資料,希望通過本文大家能掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09
  • iOS如何封裝帶復(fù)制功能的UILabel示例代碼

    iOS如何封裝帶復(fù)制功能的UILabel示例代碼

    如果是在IOS的應(yīng)用方面,很多時(shí)候我們需要封裝UILabel,下面這篇文章主要給大家介紹了關(guān)于iOS如何封裝帶復(fù)制功能的UILabel的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-08-08
  • iOS彈幕組件LNDanmakuMaster的具體使用

    iOS彈幕組件LNDanmakuMaster的具體使用

    這篇文章主要介紹了iOS彈幕組件LNDanmakuMaster的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • IOS 改變鍵盤顏色代碼

    IOS 改變鍵盤顏色代碼

    這篇文章主要介紹了IOS 改變鍵盤顏色代碼,十分的簡單實(shí)用,有需要的小伙伴可以參考下。
    2015-05-05
  • iOS開發(fā)中TabBar再次點(diǎn)擊實(shí)現(xiàn)刷新效果

    iOS開發(fā)中TabBar再次點(diǎn)擊實(shí)現(xiàn)刷新效果

    這篇文章主要介紹了iOS開發(fā)中TabBar再次點(diǎn)擊實(shí)現(xiàn)刷新效果,實(shí)現(xiàn)方法也很簡單,需要的朋友可以參考下
    2018-04-04
  • iOS判斷運(yùn)營商類型的實(shí)現(xiàn)方法

    iOS判斷運(yùn)營商類型的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄猧OS判斷運(yùn)營商類型的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • iOS開發(fā)教程之UIRefreshControl使用的踩坑指南

    iOS開發(fā)教程之UIRefreshControl使用的踩坑指南

    UIRefreshControl是iOS6自帶的UITableView下拉刷新控件。下面這篇文章主要給大家介紹了關(guān)于iOS開發(fā)教程之UIRefreshControl使用的踩坑指南,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • iOS的UI開發(fā)中UITabBarControlle的基本使用教程

    iOS的UI開發(fā)中UITabBarControlle的基本使用教程

    這篇文章主要介紹了iOS的UI開發(fā)中UITabBarControlle的基本使用教程,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-12-12
  • iOS 開發(fā)常用宏總結(jié)

    iOS 開發(fā)常用宏總結(jié)

    這篇文章主要介紹了iOS 開發(fā)常用宏總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • iOS中使用URL Scheme進(jìn)行App跳轉(zhuǎn)的教程

    iOS中使用URL Scheme進(jìn)行App跳轉(zhuǎn)的教程

    這篇文章主要介紹了iOS中使用URL Scheme進(jìn)行App跳轉(zhuǎn)的教程,比如在應(yīng)用內(nèi)提示安裝另一個(gè)應(yīng)用時(shí)就以url打開safari然后打開app store那樣,需要的朋友可以參考下
    2016-04-04

最新評論

社会| 汝州市| 灵石县| 石渠县| 乌审旗| 炎陵县| 同德县| 玉龙| 文安县| 正镶白旗| 焦作市| 仁化县| 巴青县| 新津县| 郴州市| 新蔡县| 肥城市| 沛县| 招远市| 平湖市| 榆树市| 阳原县| 湾仔区| 华宁县| 枝江市| 辽宁省| 托里县| 丰都县| 明光市| 寿阳县| 平顶山市| 抚宁县| 常山县| 故城县| 公安县| 普兰县| 长汀县| 绥德县| 东阿县| 金昌市| 乌审旗|