카카오톡 앱 미설치 시, 앱 스토어로 이동하는 코드 관련 질문

문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.

Faq 목록 - 10. Android ( Faq 목록 입니다 ) 먼저 확인해주세요.


우선 플러터 웹뷰 사용해서 앱을 개발하고 있습니다.
웹에서 카카오톡 채팅방에 들어가는 코드를 실행시키고 앱에서 해당 내용을 받아서 카카오톡을 실행시키려고 하는데 앱이 설치가 되있으면 별 문제가 되지 않는데, 미설치시에 스토어로 이동시키려고 할 때 문제가 발생합니다.

market://details?id=$packageName 이런 url로 이동하려고 하는데 packageName을 Intent.parseUri(it, Intent.URI_INTENT_SCHEME)라고 정의한 Intent에서는 알 방법이 없어서 어떻게 해야할지 모르겠네요

어떤 상황인지 확인 위해 관련 코드 블럭 공유 부탁드려요.

private fun handleIntent(url: String?) {
        url?.let {
            val intent = Intent.parseUri(it, Intent.URI_INTENT_SCHEME)
            if (intent.resolveActivity(packageManager) != null) {
                startActivity(intent)
            } else {
                val packageName = intent.getPackage()
                startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$packageName")))
            }
        }
    }

위의 코드처럼 intent 관련해서 앱 실행 동작을 처리할 때 앱 설치 유무에 따른 동작을 다르게 설정하려고 합니다.
else에서 설치가 되있지 않다면 카카오톡을 설치하도록 유도해야하는데, 무조건 com.kakao.talk을 넣을 수는 없기 때문에 일반적인 방법을 갈구하는데 현재 getPackage() 함수가 안드로이드 11 버전 이후로는 null 만 준다고하여 다른 방법을 못찾고 있는 상황입니다.

인앱브라우저에서 카카오 로그인으로 handleIntent에 진입한 것을 가정한것인가요?

url 전체 스트링 기재해보시겠어요?

인앱브라우저에서 카카오톡 알림톡 채널로 이동하는 로직을 동작시키고
해당 내용을 앱에서 받아서 처리하는 방식입니다.

intent://plusfriend/chat/_NBxdXxb?extra=%7B%22referer%22%3A%22https%3A%2F%2Fceo.torder.com%2Fuser%22%7D#Intent;scheme=kakaoplus;end;

위의 형태로 url을 받아서 처리합니다.

채널 채팅 인텐트 스킴을 호출하신거군요.

package에 com.kakao.talk를 넣었을때 앱 설치 유도로 구글 심사 반려되는 경우가 있어서 더이상 package에 넣지 않습니다.

url에 plusfriend가 있으면 분기 하도록 설정하시면 될 것 같습니다.

감사합니다!

1개의 좋아요