투케이2K

232. (TWOK/ERROR) [Ios] webViewWebContentProcessDidTerminate 메모리 부족 및 앱 백그라운드 전환 시 웹뷰 백화 현상 본문

투케이2K 에러관리

232. (TWOK/ERROR) [Ios] webViewWebContentProcessDidTerminate 메모리 부족 및 앱 백그라운드 전환 시 웹뷰 백화 현상

투케이2K 2024. 4. 8. 19:07

[환경 설정 및 설명]

프로그램 : Xcode

설 명 : [Ios] webViewWebContentProcessDidTerminate 메모리 부족 및 앱 백그라운드 전환 시 웹뷰 백화 현상

 

[에러 원인]

1. 웹뷰 에서 메모리 누수 및 웹뷰가 crash (크래시) 발생 시 백화 현상 발생 (웹뷰 흰색 화면)

  >> WKWeview 는 crash 가 나면 WKWebview 만 종료 됨


2. 앱을 장기간 백그라운드 전환 후 다시 재활성 시 웹뷰 백화 현상 발생 (웹뷰 인스턴스 초기화)
 

[해결 방법]

 

1. 웹뷰 동작 클래스에서 webViewWebContentProcessDidTerminate 선언 후 해당 이벤트로 웹뷰 종료 이벤트 감지


2. webViewWebContentProcessDidTerminate 발생 시 webview 인스턴스 nil 체크 후 리로드 및 앱 재구동 수행 실시


3. 소스 코드 : 

    // -----------------------------------------------------------------------------------------
    // MARK: - [웹뷰에서 메모리 누수 이벤트 감지]
    // -----------------------------------------------------------------------------------------
    // 필요 설정 : WKUIDelegate / webView.uiDelegate = self
    // -----------------------------------------------------------------------------------------
    func webViewWebContentProcessDidTerminate(_ webView: WKWebView){
        S_Log._F_(description: "웹뷰 [Terminate] 메모리 부족 이슈 발생", data: nil)
        
        // ----------------------------------------------
        // [1] : [웹뷰 리로드 수행]
        // ----------------------------------------------
        if (self.main_webview != nil){
            webView.reload()
        }
        // ----------------------------------------------
        
        
        // ----------------------------------------------
        // [2] : [해당 발생 시점 조사]
        // ----------------------------------------------
        /*
         1. 앱 라이프 사이클 백그라운드, 포그라운드 상태 시간 저장
         2. 앱 포그라운드 상태 인 경우 앱 재구동 수행
         */
        // ----------------------------------------------
    }

 

반응형
Comments