문의 시 사용하시는 SDK 버전 정보와 플랫폼(Android / iOS) 및 디벨로퍼스 앱ID를 알려주세요.
Flutter / kakao_flutter_sdk_share: ^1.9.1+2 / 앱ID : 736310
카카오톡 설치된 iO단말에서 테스트 중인데요,
final isKakaoTalkAvailable = await ShareClient.instance.isKakaoTalkSharingAvailable(); --> false
final bool isInstalled = await isKakaoTalkInstalled(); --> true
로 리턴됩니다.
그리고
Uri shareUrl = await ShareClient.instance.shareCustom(templateId: templateId, templateArgs: templateArgs?.map((k, v) => MapEntry(k, v.toString())));
await ShareClient.instance.launchKakaoTalk(shareUrl);
위 코드에서 shareUrl은 생성되는데, 실제로 hareClient.instance.launchKakaoTalk(shareUrl) 부분이 별도의 exception도 없이 동작을 안합니다.
url_launcher (https://pub.dev/packages/url_launcher) 라이브러리로 shareUrl을 실행하면 카카오톡이 실행되는 것은 확인했습니다.
안녕하세요.
웹뷰를 사용하는 url_launcher와 달리 앱 스킴을 직접 호출하는 SDK는
앱 실행 허용 목록 설정이 필수 입니다.
아래 가이드를 참고 부탁드립니다.
시작하기 | Kakao Developers 시작하기
Info.plist 내의 앱 실행 허용목록 (Queried URL Schemes) 에
kakaokompassauth
kakaotalk
kakaolink 추가가 된 상황이고
커스텀 URL 스킴 (URL types) 에
kakao${APP_KEY} 추가해 두었습니다.
그리고 launchUrl로 호출하는 Uri 는 “kakaolink://send?linkver=4.0&appkey=…” 형태의 링크로 확인했습니다.
참고로 카카오 로그인 기능도 사용중인데 해당 기능은 정상 동작 중입니다.
isKakaoTalkSharingAvailable 결과가 false 인 것은
카카오톡 공유하기를 위한 스킴(kakaolink)를 호출하지 못하기 때문인데요
info.plist 파일에서 입력된 값이 유효한지 다시 확인 부탁드립니다.
Info.plist 내용 스샷 첨부합니다.
그리고 launchUrl 통해서 kakaolink://send?linkver=4.0&appkey=… 스킴실행시 카카오톡 앱이 정상 실행됩니다.
LSApplicationQueriesSchemes 은 최대 50개만 허용됩니다.
사용하지 않는 스킴은 정리 부탁드립니다.
https://developer.apple.com/documentation/uikit/uiapplication/1622952-canopenurl
추가로, 웹뷰가 스킴을 호출하는 것과, 앱에서 직접 스킴을 호출하는 것은 메커니즘이 다릅니다.
LSApplicationQueriesSchemes 정리 부탁드립니다.
1개의 좋아요