총 게시물 39,226건, 최근 2 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

android webView 관련 이슈사항

글쓴이 : 씨디케이 날짜 : 2017-12-29 (금) 16:02 조회 : 2999
글주소 : http://www.androidside.com/B49/169057
 
  4DView
3D Web Cloud Services, 3D촬영, 3D홈페이지 - 4DView
www.4dwel.com
  쿠쿠닥스 HTML5 통합뷰어
Non-ActiveX 기반의 HTML5 문서뷰어 office, pdf, hwp
www.kukudocs.com/
  실시간 파일다운로드 메가파일
최신영화, 인기드라마 초고속 다운로드, 믿을수 있는 웹하드! 포인트 최대5배 지급
www.megafile.tv
신청하기


안드로이드, 자바 그리고 다양한 질문에 대해 성실히 답해드립니다. Q&A Jang

안녕하세요 운영중 하이브리드 앱을 작업중에 이슈가 발생하여 문의드립니다

사용중이앱(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();

하이브리드앱을 작업후에 비슷한 경험또는 이런 이슈를 해결하신분 있으시면 답변 부탁드립니다





질문자가 자신의 포인트 100 점을 걸었습니다.
답변하시면 포인트 2을, 답변이 채택되면 포인트 80을 드립니다.

질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

에찌 2018-01-10 (수) 10:34
저는 tgkill 이라는 문제를 겪었는데여
하이브리드 앱의 경우 하드웨어 가속화를 사용하면 여러가지 문제가 발생할 수도 있다고 하더군요.
근데 사용하지않으면 느리고..

우선 해당 문제를 겪은 건 아니지만
몇가지 확인해봐야할 것이.. 앱의 Theme 에 windowBackground 를 투명으로 줘보세요.
아마 백화현상이 안생기고 투명으로 바뀔듯합니다.

그리고 onResume 에서 로그를 찍어보시고
onPageStart 에서도 로그를 찍어보세요. 정상적으로 로드를 했는지여..

당연하겠지만 javascriptEnabled 가 true 가 되어있는지 아니면 webview 가 null 이 되지는 않았는지등
많은 부분을 확인해봐야할 듯합니다.

결론적으로 하드웨어 가속화를 사용하는 데에 있어 문제는 없지만 그것이 영향을 줘서 다른부분들에 대한 문제가 생길 수도있어 다른 부분들에 대한 문제가 없는지 확인해야 할 듯합니다.

댓글주소 추천 0 반대 0
이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기