Notice
Recent Posts
Recent Comments
Link
투케이2K
286. (ios/swift) AppDelegate 앱 딜리게이트에 화면 캡쳐 (capture) 및 녹화 (record) 이벤트 감지 등록 실시 본문
IOS
286. (ios/swift) AppDelegate 앱 딜리게이트에 화면 캡쳐 (capture) 및 녹화 (record) 이벤트 감지 등록 실시
투케이2K 2022. 11. 16. 11:00[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드]
import UIKit
import AVFoundation
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. 애플리케이션 딜리게이트
// -----------------------------------------
*/
// MARK: - [전역 변수 선언 실시]
var window: UIWindow? // [ios 13 미만 버전 제어 위해 선언]
// MARK: - [앱 프로세스 완료 및 앱 실행 실시]
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
print("")
print("====================================")
print("[AppDelegate >> didFinishLaunchingWithOptions]")
print("-------------------------------")
print("설 명 :: 앱 프로세스 완료 및 앱 실행 실시")
print("====================================")
print("")
// -----------------------------------------
// MARK: - [캡쳐 및 녹화 이벤트 감지를 위해 NotificationCenter 등록]
window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = ViewController()
window?.makeKeyAndVisible()
NotificationCenter.default.addObserver(
self,
selector: #selector(self.captureEvent),
name: UIApplication.userDidTakeScreenshotNotification, // [캡쳐 감지]
object: nil
)
NotificationCenter.default.addObserver(
self,
selector: #selector(self.recordEvent),
name: UIScreen.capturedDidChangeNotification, // [녹화 감지]
object: nil
)
// -----------------------------------------
// -----------------------------------------
return true
// -----------------------------------------
}
// MARK: - [Scene 만들기 위한 구성 객체 반환 : 스토리보드 , info]
@available(iOS 13.0, *)
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
print("")
print("====================================")
print("[AppDelegate >> configurationForConnecting]")
print("-------------------------------")
print("설 명 :: Scene 만들기 위한 구성 객체 반환 : 스토리보드 , info")
print("====================================")
print("")
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}
// MARK: - [Scene 구성 객체 해제 실시]
@available(iOS 13.0, *)
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
print("")
print("====================================")
print("[AppDelegate >> didDiscardSceneSessions]")
print("-------------------------------")
print("설 명 :: Scene 구성 객체 해제 실시")
print("====================================")
print("")
}
// MARK: - [애플리케이션 사용자가 작업 태스크 날린 이벤트 감지]
func applicationWillTerminate(_ application: UIApplication) {
print("")
print("====================================")
print("[AppDelegate >> applicationWillTerminate]")
print("-------------------------------")
print("설 명 :: 애플리케이션 사용자가 작업 태스크 날린 이벤트 감지")
print("====================================")
print("")
}
// MARK: - [디바이스 화면 세로 모드 고정 실시]
//*
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
/*
print("")
print("====================================")
print("[AppDelegate >> supportedInterfaceOrientationsFor]")
print("-------------------------------")
print("설 명 :: 디바이스 화면 세로 모드 고정 실시")
print("====================================")
print("")
// */
// [세로 방향 고정]
return UIInterfaceOrientationMask.portrait
}
// */
// MARK: - [캡쳐 이벤트 감지 메소드]
@objc private func captureEvent() {
print("")
print("====================================")
print("[AppDelegate >> captureEvent]")
print("-------------------------------")
print("설 명 :: 캡쳐 이벤트 감지")
print("====================================")
print("")
}
// MARK: - [녹화 이벤트 감지 메소드]
@objc private func recordEvent() {
print("")
print("====================================")
print("[AppDelegate >> recordEvent]")
print("-------------------------------")
print("설 명 :: 녹화 이벤트 감지")
print("====================================")
print("")
}
} // [클래스 종료]
[결과 출력]
반응형
'IOS' 카테고리의 다른 글
Comments