금융권 프로젝트시 백그라운드 전환시 현재 화면의 민감정보들을 가려야되는 경우가 종종있다.

 

포그라운드 -> 백그라운드 전환시 현재 화면을 다른 대체 이미지로 가린다.

백그라운드 -> 포그라운드 전환시 대체 이미지를 다시 삭제하고 서비스 화면을 보여준다.

 

참고사이트 : https://dusanbaek.tistory.com/19

 

Tip : 백그라운드 진입 시 민감한 정보 가리기

금융 등 개인 정보를 담는 앱들은 백그라운드에서 앱 화면을 가리는 기능을 사용한다. iOS 13 미만을 지원하는 앱에서는 appDelegate에서, 이상의 버전을 지원하는 앱에서는 sceneDelegate에서 해당 메소

dusanbaek.tistory.com

 

// 백그라운드로 쓸어 올릴때
func applicationWillResignActive(_ application: UIApplication) {
    log(direction: .ETC, ofType: self, datas: ">>>>>>applicationWillResignActive")
    callBackgroundImage(true)
}

// 백그라운드로 완전 전환시
func applicationDidEnterBackground(_ application: UIApplication) {
    log(direction: .ETC, ofType: self, datas: ">>>>>>applicationDidEnterBackground")
    
}

// 포그라운드 올라오기전
func applicationWillEnterForeground(_ application: UIApplication) {
    log(direction: .ETC, ofType: self, datas: ">>>>>>applicationWillEnterForeground")
    
}

//포그라운드로 완전 전환시
func applicationDidBecomeActive(_ application: UIApplication) {
    log(direction: .ETC, ofType: self, datas: ">>>>>>applicationDidBecomeActive")
    callBackgroundImage(false)
}

func callBackgroundImage(_ bShow: Bool) {
        
        let TAG_BG_IMG = -101
        
        let backgroundView = window?.viewWithTag(TAG_BG_IMG)
        
        if bShow {
            
            if backgroundView == nil {
                
                //여기서 보여주고 싶은 뷰 자유롭게 생성
                let bgView = UIView()
                bgView.frame = UIScreen.main.bounds
                bgView.tag = TAG_BG_IMG
                bgView.backgroundColor = .black
                
                let lbl = UILabel()
                lbl.frame = UIScreen.main.bounds
                lbl.textAlignment = .center
                lbl.font = UIFont.systemFont(ofSize: 30)
                lbl.textColor = .white
                lbl.numberOfLines = 0
                lbl.text = "백그라운드 진입 시\n민감한 정보 숨기기"
                 
                bgView.addSubview(lbl)
                window?.addSubview(bgView)
            }
        } else {
            
            if let backgroundView = backgroundView {
                backgroundView.removeFromSuperview()
            }
        }
    }

+ Recent posts