2016-12-01 26 views
6

Tôi đang cố gắng thay đổi ảnh chụp màn hình được tự động chụp bởi iOS khi ứng dụng nhập vào nền.Khi nào chụp ảnh màn hình tự động ios?

Tuy nhiên tôi không hoàn toàn chắc chắn khi chụp màn hình này.

Ví dụ:

Nếu bạn kéo xuống thanh thông báo trong khi trong ứng dụng các phương pháp sau đây được gọi là:

- (void) applicationWillResignActive:(UIApplication *) application { 
} 

Ngoài ra nếu bạn nhấn đúp vào nút home trong khi ở các ứng dụng cùng một phương pháp được gọi là. Ngoài ra, nếu một chế độ xem cảnh báo hiển thị 'applicationWillResignActive' được gọi.

Nhưng trong cả hai trường hợp

- (void) applicationDidEnterBackground:(UIApplication *) application { 
} 

không được gọi.

Vì vậy, câu hỏi của tôi là, có một ảnh chụp màn hình được chụp sau khi cuộc gọi đến applicationWillResignActive ngay cả khi ứng dụng không nhập nền? Hay iOS chỉ chụp ảnh chụp màn hình sau applicationDidEnterBackground?

Trả lời

3

bạn có thể nhìn qua here, trong Tóm lại, thay đổi quan điểm trước khi trở về từ applicationDidEnterBackground:

+0

Hoặc thậm chí đi trực tiếp đến nguồn chính: https://developer.apple. com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html – Tommy

1

Yes.

- (void) applicationWillResignActive:(UIApplication *) application { }

được gọi khi bạn kéo xuống thanh thông báo hoặc ngay cả khi bạn nhấp đúp chuột vào nút home. Bạn phải làm một cái gì đó ở đây để ngăn chặn các thông tin nhạy cảm của bạn được chụp bởi hệ điều hành. Một cách giải quyết có thể là:

  1. Set một màn hình overlay mờ trước các ứng dụng đi trong nền
  2. Khi ứng dụng trở nên remove hoạt động lớp phủ này

Something như thế này:

-(void)applicationWillResignActive:(UIApplication *)application 
{ 
    imageView = [[UIImageView alloc]initWithFrame:[self.window frame]]; 
    [imageView setImage:[UIImage imageNamed:@"blurryImage.png"]]; 
    [self.window addSubview:imageView]; 
} 

Và sau đó xóa lớp phủ này trước khi ứng dụng đi vào nền trước:

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    if(imageView != nil) { 
     [imageView removeFromSuperview]; 
     imageView = nil; 
    } 
} 
+0

Điều đó không trả lời được câu hỏi của tôi. Tôi nhận ra applicationWillResignActive được gọi trong những tình huống đó. Tuy nhiên, khi nào ứng dụng chụp ảnh màn hình? applicationWillResignActive hoặc applicationDidEnterBackground? – lostintranslation

+0

Ok tôi hiểu. Xem tài liệu được cung cấp bởi ** Apple ** trong các phương thức đó trong 'AppDelegate.m' của bạn, bạn sẽ tìm thấy câu trả lời của mình. Nhân tiện, chính xác, 'applicationWillResignActive' phải là câu trả lời cho câu hỏi của bạn. – nayem

0

được gọi khi bạn kéo thanh thông báo xuống hoặc ngay cả khi bạn nhấp đúp vào nút trang chủ. Bạn phải làm một cái gì đó ở đây để ngăn chặn các thông tin nhạy cảm của bạn được chụp bởi hệ điều hành. Một cách giải quyết có thể là:

Set một màn hình overlay mờ trước các ứng dụng đi trong nền Khi ứng dụng bắt đầu hoạt động loại bỏ lớp phủ này

Các vấn đề liên quan