-
안드로이드 어플 오류 수정 : Err_unknown_url_scheme프로그래밍/ 안드로이드어플만들기 2023. 9. 3. 16:27728x90반응형
운영하던 어플에 새로 제휴가 들어오면서 이벤트 배너를 클릭하면 외부 링크로 이동하도록 수정하였는데,
외부 링크에서 공인인증서나 네이버 로그인 같은 인증 사이트로 이동시
아래와 같이 Err_unknown_url_scheme 에러가 발생하였다.
기존 코드
public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return false; }
새로운 웹뷰를 띄워서 해결하는 방식도 있다고 하던데,
인증 방법이 워낙 다양해서 이렇게 해도 Err_unknown_url_scheme 에러가 발생하는 페이지가 있었다.
public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("http://") || url.startsWith("https://")) { view.loadUrl(url); return false; } try { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); view.getContext().startActivity(intent); return true; } catch (Exception e) { Log.i(TAG, "shouldOverrideUrlLoading Exception:" + e); return true; } }
결국 예전에 테스트해두고 사용 안 한 커스텀탭을 사용하기로 하고제휴 페이지의 링크일 경우 커스텀탭으로 url을 열기로 했다.
커스텀 탭은 모바일 웹페이지와 동일하기 때문에 따로 처리를 안 해줘도 된다.
import android.app.PendingIntent; public boolean shouldOverrideUrlLoading(WebView view, String url) { if( url.contains("meritz")) { openCustomTabs(url); } else{ view.loadUrl(url); } return false; } public void openCustomTabs( String url) { Intent intent = new Intent(Intent.ACTION_SEND); PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 1, intent, PendingIntent.FLAG_IMMUTABLE); CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(customTabsSession); builder.setShowTitle(true); CustomTabsIntent customTabsIntent = builder.build(); customTabsIntent.launchUrl(this, Uri.parse(url)); }
새로운 창으로 이동하면서 이제 문제없이 제휴 페이지에서 가입이 가능하다.
이제 테스프 폰에서 테스트하면서 어플 릴리즈 준비하자.
728x90반응형'프로그래밍 > 안드로이드어플만들기' 카테고리의 다른 글
어플 릴리즈 준비 - 경고 메세지 수정 (0) 2023.09.09 어플 릴리즈 준비 ( + 빌링 sdk 업데이트 ) (0) 2023.09.07 안드로이드 13에서 push 알림 안되는 이슈 해결 (0) 2023.09.03 안드로이드 13에서 갤러리에서 사진 선택 크러시 (1) 2023.09.02 안드로이드 인앱결제 테스트 오류 - 이 버전의 애플리케이션에서는 Google paly를 통한 결제를 사용할 수 없습니다. (0) 2023.08.20