카카오 공유하기 관련 문의

문의 시 사용하시는 SDK 버전 정보와 플랫폼(Android / iOS) 및 디벨로퍼스 앱ID를 알려주세요.


flutter sdk : sdk: “>=2.12.0 <3.0.0”
앱 아이디 : 872082

kakao 공유하기 기능을 사용하는 중입니다.

final FeedTemplate defaultFeed = FeedTemplate(

  content: Content(
    title: "${widget.title}에 초대 되셨습니다.",
    description: widget.subtitle,
    imageUrl: Uri.parse(
        widget.photo),
    link: Link(
        webUrl: Uri.parse('https://developers.kakao.com'),
        mobileWebUrl: Uri.parse('https://developers.kakao.com')),
  ),
  buttons: [
    Button(
      title: '케이브 사피엔스로 이동',
      link: Link(
        androidExecutionParams: {'key1': 'value1', 'key2': 'value2'},
        iosExecutionParams: {'key1': 'value1', 'key2': 'value2'},
      ),
    ),
  ],
);

를 이용하여

GestureDetector(
onTap: () async {

                          // 공유하기

                          bool isKakaoTalkSharingAvailable = await ShareClient.instance.isKakaoTalkSharingAvailable();
                          if (isKakaoTalkSharingAvailable) {
                            try {
                              Uri uri = await ShareClient.instance.shareDefault(template: defaultFeed);
                              await ShareClient.instance.launchKakaoTalk(uri);
                              print('카카오톡 공유 완료');
                            } catch (error) {
                              print('카카오톡 공유 실패 $error');
                            }
                          } else {
                            try {
                              Uri shareUrl = await WebSharerClient.instance.makeDefaultUrl(template: defaultFeed);
                              await launchBrowserTab(shareUrl, popupOpen: true);
                            } catch (error) {
                              print('카카오톡 공유 실패 $error');
                            }
                          }
                        },
                        child: Icon(CupertinoIcons.share, color: Colors.black,),
                      ),

해당 GestureDetector를 클릭하면 카카오톡 공유하기를 사용하고 있습니다.
하지만 제가 원하는 것은 이 코드를 사용하여 앱 상의 공유하기 버튼이 있는 페이지로 이동하는 것인데 앱이 켜지기만 합니다.

이 버튼을 클릭하여 해당 페이지로 이동가능 하게 할 수 있을까요?

class CommunityPage extends StatefulWidget {

final String title, subtitle, photo, si, gu, type, postId, challengepostId, uid, time, openTalkUrl;
final List member, manager;

const CommunityPage({Key? key,
required this.title,
required this.subtitle,
required this.photo,
required this.postId,
required this.si,
required this.gu,
required this.type,
required this.member,
required this.uid,
required this.time,
required this.openTalkUrl,
required this.manager,
required this.challengepostId
}) : super(key: key);

@override
State createState() => _CommunityPageState();
}

class _CommunityPageState extends State with TickerProviderStateMixin {…

제가 이동하고자 하는 페이지는 이런 페이지 입니다.

안녕하세요

적어주신 내용을 정리하면 CommunityPage 페이지 내부에는 공유하기 버튼이 존재하고, 다른 페이지에 구현된 GestureDetector를 클릭하면 CommunityPage로 이동하고 싶다는 것으로 이해했는데요, 제가 제대로 이해한게 맞을까요?

이해한 내용이 맞다면 GestureDetector는 카카오톡 공유하기 기능을 실행하는 것이 아니라 페이지 이동을 해야하기 때문에 현재
onTap 부분에 구현된 코드를 제거하고 CommunityPage로 이동하는 코드를 넣어주셔야할 것 같아요.
페이지를 이동하는 방법은 다양하게 구현할 수 있기 때문에 별도로 찾아보셔서 상황에 맞게 구현하시는 것이 좋을 것 같습니다.

혹시라도 제가 내용 이해를 잘못했다면 조금 더 자세하게 설명 부탁드리겠습니다

답변 감사드립니다.

CommunityPage 페이지 내부에는 공유하기 버튼이 존재하고 이 버튼을 클릭해서 카카오톡 공유하기를 실행하여 카카오톡으로 공유를 합니다.

그러면 카카오톡에 피드 탬플릿형식으로 공유가 되고

위 의 사진과 같이 공유가 됩니다.

여기에서 케이브사피엔스로 이동 이라는 버튼을 클릭하면
케이브 사피엔스 앱이 켜지는데

제가 원하는건 케이브사피엔스 내에서 communitypage로 바로 이동되는 것입니다.
가능할까요?

말씀주신 내용 이해했습니다

kakao_flutter_sdk에서는 커스텀 URL 스킴을 수신하는 기능도 제공하고 있습니다.

가이드 참고하셔서 스킴을 전달 받은 경우에 페이지 이동하도록 구현하시면 정상적으로 동작할 것 같아요.

해당 기능은 다양하게 구현할 수 있을 것 같은데요, kakao_flutter_sdk 샘플앱에도 비슷한 구현이 되어있어서 아래의 코드들 참고하시면 좋을 것 같습니다

main.dart
main_page.dart

넵 감사합니다. 한번 해보겠습니다.