안녕하세요.
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이 오류있는 버전이라 그런가 싶은데..
혹시 이런 현상에 대해, 알고계신다면.. 이슈나 디버깅 정보 공유 부탁드리겠습니다.
감사합니다.