V1에서 v2 업그레이드 promise 패턴 문의

v2로 버전 업그레이드 가이드에 의하면 promise 패턴 도입으로 기존의 success, fail을 then, catch 메서드를 사용하여 처리하도록 가이드가 되어있습니다.

하지만 kakao developers에서 v2버전의 sendDefault 함수를 확인 하였을 때 promise 객체를 반환하지 않기 때문에 then, catch 구문이 사용이 불가능한 상황입니다.

기존의 success 와 fail을 대체할 수 있는 방법이 있을지 문의 드립니다.


안녕하세요.

아쉽지만, 카카오톡 공유하기는 Promise 리턴하지 않습니다.
대신, 카카오톡 공유 전성 성공 알림 설정을 통해 공유하기 메시지가 사용자에게 발송되었는지 확인 하실 수 았습니다. (콜백 사용자 정의 파라미터 설정 필요)

참고로, v1 버전의 카카오톡 공유하기에서도 success, fail 기능은 지원되지 않았습니다.

답변 감사드립니다.

그런데 저희가 기존에 v1에서 kakao.link.sendDefault 함수 feed object 내부에 success, fail 기능을 사용을 하고 있었는 데 지원되지 않았다는 말씀이 이해가 가지 않습니다.
그래서 v2의 kakao.share.sendDefault에서 대체 가능한 방식이 있을지 문의 드린 상황입니다.

추가로 v1에서는 카카오톡 공유하기 실행 시, 스킴형태로 SDK에서 네이티브 쪽으로 전달 하는 방식이었으나,
v2에서는 weburl(https://talk-apps.kakao.com/)로 변경 된 상황인 것 같습니다.

저 weburl이 카카오톡 자체 중계 페이지가 맞는 것인가요?
v2에서는 해당 페이지에서 카카오톡 설치 유무 판단 및 미 앱 미설치 시 앱스토어로 이동이 되고, 앱 설치 되어 있을시에 앱이 열리도록 동작 되고 있는 것이 맞을 지 문의 드립니다.

사용하고 계시는 JS SDK v1 버전에 따라 다르지만
최신 버전의 JS SDK v1에서는 카카오톡 공유하기에서 success, fail 파라미터를 전달하여도 해당 기능은 동작하지 않으며, 데스크톱 환경을 위한 callback 기능만 제공됩니다.

또한, 기존 방식들은 사용자가 모바일 환경일 경우, 카카오톡으로 동작하기에 사용자가 실제로 친구를 선택하고 메시지가 전달 되었는지는 웹에서 알 수 없습니다.

때문에 v1, v2 버전에서 success, fail, callback 기능은 메시지 발송 여부 보다는 메시지 유효성만을 검증하여 전달하였습니다. 그렇기에 success, fail, callback 기능은 권장드리지 않고 카카오 서버측 콜백 기능을 이용하도록 권장 드리고 있으며, 이는 카카오 서버에서 메시지 발송여부를 전달하기에 정확히 판단 가능한 수단입니다.

웹에서 콜백 기능이 계속 필요한 이유가 어떻게 되실까요?


v2 부터 iOS 환경에서 사용하는 카카오톡 공유하기는 카카오톡 실행을 위해 유니버셜 링크를 사용합니다.
https://talk-apps.kakao.com 는 유니버셜 링크용 URL 입니다.

유니버셜 링크에서 톡 설치 유무 판단을 하여 톡 실행 하며, 미 설치 시 앱스토어로 이동가능한 기회를 제공합니다.

웹에서 콜백기능을 사용하는 사유는

공유하기를 실행 한 후 카카오톡이 열리기 전까지 저희 앱에서 로딩바를 실행하고, 이후 카카오톡 공유하기가 끝났을 시에 저희 앱으로 돌아와서 로딩바를 닫도록 실행하고 있어 공유하기가 끝났음을 파악하기 위함입니다.

그렇다면 추가로 말씀 주신 유니버셜 링크를 실행하였을 때(웹뷰 내에서) 카카오톡 설치가 되지 않은 경우,
APP Store preview로 보내지고 있는 게 맞는 걸까요? 해당 페이지에서 [appstore view in] 버튼을 클릭 해도 따로 동작이 없는 상황인데, 이후 부분은 저희가 추가 개발을 통해 이동해야하는 것일지 문의 드립니다.

안녕하세요.

유니버셜 링크가 동작할 수 없는경우 해당 페이지가 그대로 노출되고
사용자는 해당 페이지의 다운로드 버튼을 터치하여 앱 설치 화면이로 이동할 수 있습니다.
(앱 스토어로 바로 리디렉션하지 않습니다.)
image