하이브리드 앱을 작업중에 이슈가 발생하여 문의드립니다
사용중이앱(A app)을 웹뷰를통해 사용중 다른앱(B app)을 사용하기위해 onPause() 호출(사용중인 앱을 내립니다)
이후 사용했던 앱(A app)으로 이동시 웹뷰가 백화현상(배경에 아무것도 안보이고 흰색 배경으로 보이는현상)이 발생하고 있습니다
사용중에 하드웨어가속과 소프트웨어가속 사용중 문제 발생하는 부분이 있습니다
사용중인 웹뷰클래스에 적용된 코드입니다
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
} else {
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
하드웨어 가속을 사용하는 폰중 안드로이드폰(7.x 버전에서 주로 발생)에서 사용중인 앱(A app)을 내리고
다른앱(B app)으로 사용후 다시 사용중(A app)이였던 앱을 실행시 백화현상이 나는 현상이 있습니다
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);<- 적용된부분을 하드웨어가속(webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);) 변경시
} else {
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
하드웨어 가속을 소프트웨어 가속으로 변경시 적용을하면 백화현상이 발생하는
문제는 사라지지만 화면에 스크롤을 할경우 버벅거리는 현상과
스크롤이 팅기면서 최상단,최하단으로 스크롤이 적용되는 현상이 발생합니다
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null) -> webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
} else {
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
웹뷰이슈관련 검색을 해본결과 아래와같은 처리하면 문제를 수정한부분이있어
웹뷰를 사용하다보면 페이지가 하얗게 되면서 아무것도 보이지 않을 때가 발생하는데
이유는 페이지에서 사용하는 javascript가 정상적으로 동작하지 않아 페이지를 보여주지 못하는 것이라고 하여
아래와 같은 코드를 적용하였지만 백화현상 동일하게 발생하는 현상입니다
onResume() 적용 -> webView.resumeTimers();
onPause() 적용 -> webView.pauseTimers();
하이브리드앱을 작업후에 비슷한 경험또는 이런이슈를 해결하신분 있으시면 답변 부탁드립니다