kakao / kakao_flutter_sdk

Flutter SDK for Kakao Open API
Apache License 2.0
192 stars 71 forks source link

[Bug] 웹 공유하기 이슈 #193

Closed YeomDongUk closed 3 months ago

YeomDongUk commented 3 months ago

이슈 설명 (Issue description)

      Uri shareUrl = await WebSharerClient.instance.makeCustomUrl(templateId: id, templateArgs: templateArgs);
      await launchBrowserTab(shareUrl, popupOpen: true);

해당 소스코드로 공유하기를 실행을 한 이후 공유가 완료된 다음 취소 버튼을 통해 웹페이지를 닫았습니다.

PlatformException(
  CANCELED, 
  User canceled login., 
  작업을 완료할 수 없습니다.(com.apple.AuthenticationServices.WebAuthenticationSession 오류 1.), 
  null
);

공유하기를 성공해도 에러가 나오는데 방법이 있을까요? 스크린샷 2024-08-21 오후 7 11 32

앱 ID (App ID)

310864

플랫폼 (Platform)

ios 17.5

디바이스 (Device)

iphone 15 pro simulator

Version

1.9.3

Flutter SDK

3.22.2

재현 방법 (Steps to reproduce)

      Uri shareUrl = await WebSharerClient.instance.makeCustomUrl(templateId: id, templateArgs: templateArgs);
      await launchBrowserTab(shareUrl, popupOpen: true);

웹 공유하기를 실행 공유 완료 좌측 상단 위 취소 버튼 에러 발생

코드 샘플 (Code Sample)

No response

Logs

PlatformException(
  CANCELED, 
  User canceled login., 
  작업을 완료할 수 없습니다.(com.apple.AuthenticationServices.WebAuthenticationSession 오류 1.), 
  null
);

### Flutter Doctor

```shell
[✓] Flutter (Channel stable, 3.22.2, on macOS 14.5 23F79 darwin-arm64, locale ko-KR)
    • Flutter version 3.22.2 on channel stable at /Users/dongwookyeom/fvm/versions/3.22.2
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 761747bfc5 (3 months ago), 2024-06-05 22:15:13 +0200
    • Engine revision edd8546116
    • Dart version 3.4.3
    • DevTools version 2.34.3

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/dongwookyeom/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15F31d
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

[✓] IntelliJ IDEA Ultimate Edition (version 2024.1.4)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 81.0.2
    • Dart plugin version 241.18808

[✓] VS Code (version 1.91.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.92.0
mbkim95 commented 3 months ago

안녕하세요

SDK의 launchBrowserTab()는 디바이스에 설정된 기본 브라우저가 띄우고, 'x' 버튼을 누르면 유저가 사용 중인 기능을 취소한 것으로 간주해서 에러를 내려주고 있습니다.

말씀주신 동선이 웹 공유하기가 성공했고, 유저가 창을 닫기 위해 'x' 버튼을 눌렀는데 에러가 떨어지는 것으로 이해했는데요, 이 부분은 저도 어색하다고 생각하지만 현재 구조상 개선하기가 어려운 상황입니다. 이는 단순히 SDK의 구현상의 이슈가 아니라 공유하기 호출 결과를 클라이언트에서 알 수 없기 때문입니다.

조금 번거로우시더라도 공유하기 성공 결과를 전달받아서 적절한 처리가 필요하시다면 공유하기 콜백을 참고 부탁드리겠습니다.