91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在iOS中實現錄屏和截屏

發布時間:2021-05-31 17:43:45 來源:億速云 閱讀:435 作者:Leah 欄目:移動開發

本篇文章為大家展示了怎么在iOS中實現錄屏和截屏,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

截屏狀態獲取

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

搜索發現UIApplication中僅有用戶截屏后的通知,應用中只會收到已經截屏的通知并沒辦法干預。

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

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

-(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:@"[安全提醒]內含個人資金賬戶。不要截圖,錄制或分享給他人以保障資金賬戶安全。" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"確定", nil];
  [alert1 show];

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

錄屏狀態獲取

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

當錄屏狀態發生變化時,UIKit會發送UIScreenCapturedDidChange的notification。

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

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

//監測當前設備是否處于錄屏狀態
  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, *)) {
//檢測到當前設備錄屏狀態發生變化
    [[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:@"[安全提醒]內含個人資金賬戶。不要截圖,錄制或分享給他人以保障資金賬戶安全。" 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
  }
}

上述內容就是怎么在iOS中實現錄屏和截屏,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ios
AI

延吉市| 友谊县| 鄂伦春自治旗| 泸西县| 玉山县| 长垣县| 萨迦县| 日土县| 山丹县| 炉霍县| 贵州省| 古丈县| 宁阳县| 巍山| 扶绥县| 新宁县| 张掖市| 万年县| 乌兰县| 虎林市| 卫辉市| 南宁市| 那曲县| 杭州市| 大余县| 高密市| 牟定县| 楚雄市| 易门县| 玉溪市| 秦安县| 西昌市| 丹江口市| 通许县| 北海市| 湛江市| 冷水江市| 河南省| 阳泉市| 宜君县| 上虞市|