몇일간 카카오링크로 삽질을 하다가 해결된 문제를 다른 분께 도움이될까 올립니다.
하고자 했던 기능은,
앱의 데이터를 카카오링크(카카오메세지)를 통해 카톡으로 전송하고,
사용자가 카톡의 메세지를 눌렀을때,
- 해당앱을 띄우거나,
- 앱이 설치되지 않았다면, 설치페이지로 이동하고자 하였습니다.
처음에는 iOS의 dynamic link를 이용해야 하나 삽질을 하다가 결국, 단순하게 해결했습니다.
KMTContentBuilder에 mobileWebURL에는 설치페이지를 설정하고, iosExecutionParams에 데이터를 집어넣은 경우,
앱이 설치되어있으면, 앱이 로딩되고, 앱이 설치되어 있지 않다면, 설치페이지가 자동으로 로딩되네요. 카카오톡 api 똑똑합니다.
보너스!> 전송할 데이터가 많아서, dictionary에 때려넣은 다음, json string으로 변환후 한방에 iosExecutionParams에 집어넣었는데, 꽤 큰 데이터인데도, 전송이 잘 되네요 ㅋㅋ. custom object를 전송하고 싶은데, 일일이 parameter로 변환하기 귀찮아서 이렇게 했습니다.
도움이 되시길 바랍니다.
아래와 같이 하면 되네요. 복잡한 dynamic link 안녕…
물론 설치페이지를 플레이스토어나 애플스토어로 자동으로 보내는건, 웹코드를 또 짜야 겠지만요.
[feedTemplateBuilder addButton:[KMTButtonObject buttonObjectWithBuilderBlock:^(KMTButtonBuilder * _Nonnull buttonBuilder) {
buttonBuilder.title = @"App으로 이동";
buttonBuilder.link = [KMTLinkObject linkObjectWithBuilderBlock:^(KMTLinkBuilder * _Nonnull linkBuilder) {
linkBuilder.mobileWebURL = [NSURL URLWithString:installPage];
linkBuilder.iosExecutionParams = parameters;
linkBuilder.androidExecutionParams = parameters;
}];
}]];