안녕하세요, React-Native 를 이용해 앱을 구현하고 있으며, react-native-kakao-share 라이브러리를 사용해 카카오톡 공유하기 기능을 구현하고 있습니다.
공유된 카카오톡 메세지를 사용자가 눌렀을 때 이미 앱이 설치된 상태라면 앱으로, 설치되지 않은 상태라면 웹으로 이동하게 하고 싶은데, webUrl, mobileWebUrl, androidExecutionParams, iosExecutionParams 를 모두 넘겨주니 앱이 설치되지 않은 상태에서는 웹이 아니라 앱 설치 페이지로 이동합니다. androidExecutionParams, iosExecutionParams 를 제거하고 dynamicLink 를 webUrl 과 mobileWebUrl 에 사용하면 안드로이드에서는 의도한대로 작동하나, iOS 에서는 앱이 설치된 상태에서도 웹으로 이동합니다.
어떻게 고쳐야할까요?
이미 앱이 설치된 상태라면 앱으로, 설치되지 않은 상태라면 웹으로 이동하게 하고 싶은데, webUrl, mobileWebUrl, androidExecutionParams, iosExecutionParams 를 모두 넘겨주니 앱이 설치되지 않은 상태에서는 웹이 아니라 앱 설치 페이지로 이동합니다.
앱 패키지 또는 번들ID가 등록된 경우 OS별로 해당 앱이 설치 안되었다면 마켓 URL을 호출합니다.
dynamicLink 를 webUrl 과 mobileWebUrl 에 사용하면 안드로이드에서는 의도한대로 작동하나, iOS 에서는 앱이 설치된 상태에서도 웹으로 이동합니다.
iOS에서는 유니버셜링크를 사용하셨나요? 카카오톡에서 URL 호출 시 웹뷰를 띄우고 URL을 주소창에 설정하게되는데요.
iOS에서 주소창에 유니버셜링크 세팅 시, 앱을 호출하지 않습니다. 이는 인앱브라우저 뿐만아니라 사파리도 마찬가지 입니다.
(iOS는 페이지내에서만 앱호출 가능)
즉, 말씀하신 동선들은 OS 별로 모두 정상동작이며 OS무관 동일하게 동작할 수 없습니다.
(1) 원본주소에 앱스킴 설정하여 브랜치 딥링크 사용해보시겠어요?
딥링크 랜딩 페이지에서 앱호출 해서 OS무관 앱 호출하는 서비스가 있었던 것 같습니다.
(2) 자체적으로 카카오톡 공유하기의 랜딩 페이지를 만들어 사용자 버튼 선택 액션으로 앱 실행 (유니버셜링크 호출) 하도록 처리하시면 좋을 것 같습니다.