웹뷰를 통해서 개발하다가 보니, Intent로 시작하는 Url 을 처리하지 못하게 되었다. 

 

예를 들자면 아래와 같은 intent가 웹뷰 url로 날아오는데

intent://join#Intent;scheme=kakaoopen;package=com.kakao.talk;end

 

위를 처리해 주기 위해서는 

 

1. Intent.parseUri를 통해서 uri를 변환시켜줘야 한다

2. 이걸 사용할 패키지가 있는지 확인한다

3. 만약 패키지가 있다면 액티비티를 실행시킨다

val intent = Intent.parseUri(request.url.toString(), Intent.URI_INTENT_SCHEME)
if (intent.resolveActivity(packageManager) != null) {
    startActivity(intent)
    return true
}

 

 

만약 Fallback Url이 있다면 웹뷰로 다시 로딩 한다

val fallbackUrl = intent.getStringExtra("browser_fallback_url")
if (fallbackUrl != null) {
    view.loadUrl(fallbackUrl)
    return true
}

 

이렇게 처리를 해주었다.

 

위 코드들은 WebView의 shouldOverrideUrlLoading 메서드 아래에 작성된 코드들이다

 

자세한 사항은 아래를 참고하였다.

 

Chrome에서 Android 인텐트 사용  |  Web on Android  |  Chrome for Developers

Android 인텐트를 사용하여 웹페이지에서 직접 앱을 실행합니다.

developer.chrome.com

 

 

android + (kakao Javascript SDK)하이브리드앱 예제 - 카카오 로그인

activity_main.xml 웹뷰에 프레임레이아웃을 한번 감쌀 것 웹뷰에서 kakao Javascript SDK를 이용하여 팝업 웹뷰를 호출해 로그인하는 방식 웹페이지에서 Javascript SDK 사용 시 1. Kakao.Auth.authorize({ 방식을 사

kakao-tam.tistory.com

 

728x90
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기