마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

WebView, Html 버튼 Freezing 현상

0 추천
안녕하세요.

Webview를 이용해, App(Web App)을 쇼핑몰 서비스 중입니다.

오랜시간 붙들었으나.. 해당 오류가 나는 기기가 없어.. 디버깅을 못하는 상황인지라..
여러분께 경험을 여쭙고자, 글을 남깁니다. [ANR/비정상종료 탐지 X]

 

대부분의 스마트폰은 정상작동하나, 일부 기기(특정 기종X)에서 발생하는 현상입니다.
 

loadUrl을 통해, 정해진 페이지의 컨텐츠들은 정상적으로 webview에 print된 후,

특정 기기의 경우 버튼(클릭)이 Freezing됩니다. [ * 버튼의 경우, 주로 다른 페이지로 넘어가는 기능 또는 새로운 팝업창(iframe 팝업 X, div 구조의 팝업창)을 띄우는 기능임.]

이 경우에도 항상 발생하는 현상은 아닌 것 같은게, 해당 기기(고객)에 서비스 내의 이용정보를 확인해보면 장바구니, 주문 등의 결국엔 진행하시긴 합니다. ("버튼이 잘 안눌린다"로 유입되는 고객)

보통 해당 현상이 발생하는 기기에서는 유독 잦게 발생하는것 같습니다.

우선 저희 모바일 웹 및 App 특성은 아래와 같습니다.

[1] 모바일웹

- https 사용
- 버튼의 역할을 하는 Component 터치영역 : 정상 크기(터치하기에 크게 이상없는 크기)
- 해당 페이지 내의 javascript 및 기타 오류 없음.

[2] App(Web App)
- compileSdkVersion, targetSdkVersion : 28
- onTouch 감지하여, 네비게이션 바 노출 관련 코드 [현재 사용 X]
- webview 세팅 :
- addJavascriptInterface 사용중. (Android < - > Web, 서로 제어 가능 구조)
- webview 세팅 :
  > setJavaScriptEnabled(true);
  > setJavaScriptCanOpenWindowsAutomatically(true);
  > webView.getSettings().setLoadsImagesAutomatically(true);
  > webView.setInitialScale(1);
  > webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
  > webView.getSettings().setLoadWithOverviewMode(true);
  > webView.getSettings().setUseWideViewPort(true);
  > webView.getSettings().setBuiltInZoomControls(false);
  > webView.getSettings().setDisplayZoomControls(false);
  > webView.getSettings().setDomStorageEnabled(true);
  > webView.getSettings().setAllowFileAccess(true);
  > webView.clearCache(true);

문제를 탐지한 기기는 갤럭시 노트 10+ 5G[모델명 : SM-N976N], 안드로이드 버전 10의 환경의 사용자입니다.  

해당 고객님과 동일한 기기로, 테스트해보아도 해당 현상없이.. 정상적으로 서비스 이용이 가능한 것을 확인했습니다.(실물 기기 + AWS Device Farm 등)

AWS Device Farm의 경우 미국 내의 기기에 원격접속하여 네트워크 속도가 한국보다 상대적인 느린 곳에서도 테스트 해봤습니다만, 컨텐츠 로딩 속도가 느릴 뿐 결국 정상적으로 이용이 가능합니다.

예상하기로는.. 현재 system 어플인 webview version이 오류있는 버전이라 그런가 싶은데..
혹시 이런 현상에 대해, 알고계신다면.. 이슈나 디버깅 정보 공유 부탁드리겠습니다.

감사합니다.
짬짜미 (120 포인트) 님이 2020년 7월 7일 질문
짬짜미님이 2020년 7월 7일 수정

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...