[Dev, iOS] 백그라운드 진입 시 민감한 정보 가리기

2021. 12. 21. 10:52·Dev/iOS
728x90

금융 등 개인 정보를 담는 앱들은 백그라운드에서 앱 화면을 가리는 기능을 사용한다.

iOS 13 미만을 지원하는 앱에서는 appDelegate에서,

이상의 버전을 지원하는 앱에서는 sceneDelegate에서 해당 메소드들을 구현해주자.

  // 액티브 상태가 되었을 경우(다시 앱으로 돌아왔을 때)
  func sceneDidBecomeActive(_ scene: UIScene) {
      callBgImage(false)
  }

  // 홈 바를 쓸어 올리거나 홈버튼을 두번 눌렀을 경우
  func sceneWillResignActive(_ scene: UIScene) {
  }

  // 백그라운드 상태였다가 돌아왔을 때
  func sceneWillEnterForeground(_ scene: UIScene) {
      callBgImage(false)
  }

  // 백그라운드 상태로 갔을 때
  func sceneDidEnterBackground(_ scene: UIScene) {
      callBgImage(true)
  }

  func callBgImage(_ isBackground: Bool) {

          let TAG_BG_IMG = -101
          let backgroundView = window?.viewWithTag(TAG_BG_IMG)

          if isBackground {

              if backgroundView == nil {

                  //여기서 보여주고 싶은 뷰 자유롭게 생성
                  let bgView = UIView()
                  bgView.frame = UIScreen.main.bounds
                  bgView.tag = TAG_BG_IMG
                  bgView.backgroundColor = .secondarySystemBackground

                  let appIcon = UIImageView()
                  appIcon.frame = CGRect(x: bgView.layer.bounds.width / 2 - 64, y: bgView.layer.bounds.height / 2 - 64, width: 128, height: 128)
                  appIcon.image = UIImage(named: "bgView")
                  bgView.addSubview(appIcon)

                  window?.addSubview(bgView)
              }
          } else {

              if let backgroundView = backgroundView {
                  backgroundView.removeFromSuperview()
              }
          }
      }
728x90

'Dev > iOS' 카테고리의 다른 글

[Dev, iOS] Swift Package Manager 사용하기 (Xcode 13)  (0) 2022.01.13
[Dev, iOS] Storyboard 없이 첫 화면을 구성하는 법  (0) 2022.01.13
[Dev, iOS] 배경을 Gradient로 색칠하기  (0) 2021.12.06
[Dev, iOS] 디테일한 다크모드 적용하기  (1) 2021.02.06
[Dev, iOS] segue로 넘겨 받은 데이터를 다시 전달하는 법  (0) 2021.01.22
'Dev/iOS' 카테고리의 다른 글
  • [Dev, iOS] Swift Package Manager 사용하기 (Xcode 13)
  • [Dev, iOS] Storyboard 없이 첫 화면을 구성하는 법
  • [Dev, iOS] 배경을 Gradient로 색칠하기
  • [Dev, iOS] 디테일한 다크모드 적용하기
100두산
100두산
출발하게 만드는 힘이 동기라면, 계속 나아가게 만드는 힘은 습관이다.
  • 100두산
    정상에서 보자 ✈️
    100두산
  • 전체
    오늘
    어제
    • 분류 전체보기 (126)
      • Life (6)
        • living (1)
      • Research (6)
      • AI (20)
      • Dev (45)
        • iOS (28)
        • Web (4)
        • flutter (9)
        • etc (4)
      • PS (Problem Solving) (23)
      • Computer Science and Engine.. (21)
        • Data Structures and Algorit.. (13)
        • OOP (Object Oriented Progra.. (8)
      • etc (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ios
    TIP
    백트래킹
    오블완
    SKTelecom
    D3
    BOJ
    SKT
    c++
    알고리즘
    PS
    swift
    티스토리챌린지
    xcode
    자료구조
    AI
    Challenger
    백준
    파이썬
    Python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
100두산
[Dev, iOS] 백그라운드 진입 시 민감한 정보 가리기
상단으로

티스토리툴바