Flutter에서 앱인토스 SDK 사용 가능한가요?

Flutter로 앱인토스 앱을 개발 중 입니다.

사진 선택 및 업로드 기능을 추가하려고 하는데 앱인토스 SDK(@apps-in-toss/web-framework)의 fetchAlbumPhotos를 Dart js_interop을 사용해서 호출하려고 하는데 계속 실패하네요.

import { fetchAlbumPhotos } from '@apps-in-toss/web-framework';

async function checkPermission() {
  const pm = await fetchAlbumPhotos.getPermission();
  alert(pm);
}
import 'dart:js_interop';

@JS()
external JSPromise checkPermission();

위 소스대로 하면 fetchAlbumPhotos 를 못 불러오네요.

Flutter에서 앱인토스 SDK를 사용할 방법이나 SDK를 사용하지않고 이미지 업로드를 구현할 방법이 있을까요?


추가

rollup으로 번들 js 파일을 만들어서 사용하니까 동작은 하는데 번들로 만들어서 사용해도 되나요?


2차 추가

rollup으로 번들 파일 생성 후 js_interop 사용 예시 입니다.

extension type ImageResponse._(JSObject _) implements JSObject {
  external String id;
  external String dataUri;
}

@JS('window.fetchAlbumPhotos')
external JSPromise<JSArray<ImageResponse>> _fetchAlbumPhotos(JSAny? options);

@JS('window.fetchAlbumPhotos.getPermission')
external JSPromise<JSString> _getAlbumPhotosPermission();

@JS('window.fetchAlbumPhotos.openPermissionDialog')
external JSPromise<JSString> _openAlbumPhotosPermissionDialog();

다음과 같이 사용하면 됩니다.

  try {
    final result = await _fetchAlbumPhotos(
      {
        'base64': useBase64,
        'maxCount': maxCount,
        'maxWidth': maxWidth,
      }.jsify(),
    ).toDart;
    return result.toDart;
  } catch (e) {
    throw '$e';
  }
1개의 좋아요

안녕하세요 :slight_smile:
트러블 슈팅 감사해요 :man_bowing: