웹뷰를 통해서 개발하다가 보니, 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
최근댓글