프로그래밍/ 안드로이드어플만들기

안드로이드 어플 오류 수정 : Err_unknown_url_scheme

kugancity 2023. 9. 3. 16:27
반응형

 
 

 

운영하던 어플에 새로 제휴가 들어오면서 이벤트 배너를 클릭하면 외부 링크로 이동하도록 수정하였는데, 

외부 링크에서 공인인증서나 네이버 로그인 같은 인증 사이트로 이동시

아래와 같이 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
반응형