본문 바로가기

시작하기

GitHub

AI-Assisted Setup으로 플러그인을 설치할 수 있습니다. 다음 명령어로 AI 도구에 Capgo 스킬을 추가하세요:

터미널 창
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

그런 다음 아래 프롬프트를 사용하세요:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-file-sharer` plugin in my project.

수동 설정을 선호한다면, 다음 명령어를 실행하여 플러그인을 설치하고 아래의 플랫폼별 지침을 따르세요:

터미널 창
npm install @capgo/capacitor-file-sharer
npx cap sync
import { FileSharer } from '@capgo/capacitor-file-sharer';
import { FileSharer } from '@capgo/capacitor-file-sharer';
await FileSharer.share({
filename: 'report.pdf',
contentType: 'application/pdf',
base64Data: reportBase64,
});
import { FileSharer } from '@capgo/capacitor-file-sharer';
const result = await FileSharer.save({
filename: 'report.pdf',
contentType: 'application/pdf',
base64Data: reportBase64,
});
console.log(result);

자주 하는 실수

“흔한 실수” 섹션
  • 네이티브 동기화: 실행 npx cap sync 플러그인 업그레이드 후.
  • 신뢰할 수 있는 소스: 신뢰 src/definitions.ts GitHub 레포지토리에서.

Base64 파일 공유하기

“Base64 파일 공유하기” 섹션
import { FileSharer } from '@capgo/capacitor-file-sharer';
await FileSharer.share({
filename: 'report.pdf',
contentType: 'application/pdf',
base64Data: reportBase64,
title: 'Quarterly report',
text: 'Attached report',
});

base64Data raw base64 문자열이거나 다음과 같은 data URL 형태일 수 있습니다: data:application/pdf;base64,....

로컬 파일 공유하기

“로컬 파일 공유하기” 섹션
await FileSharer.share({
filename: 'export.zip',
contentType: 'application/zip',
path: fileUri,
});

네이티브 구현체는 로컬 경로를 지원합니다. file:// URL, Android content:// URI 및 Capacitor _capacitor_file_ URL.

파일 저장하기

“Save A File” 섹션
const result = await FileSharer.save({
filename: 'backup.zip',
contentType: 'application/zip',
base64Data: zipBase64,
android: {
saveDirectory: 'downloads',
relativePath: 'Download/My App',
},
});
console.log(result.uri);

Android 저장 디렉토리는 downloads, pictures, movies, music, 그리고 documents입니다. Android 10 이상에서는 MediaStore를 통해 파일을 작성합니다. Android 9 이하 버전에서는 manifest의 WRITE_EXTERNAL_STORAGE 권한을 사용하여 maxSdkVersion=28.

텍스트를 파일과 함께 공유하기

“Share Text With A File” 섹션
await FileSharer.share({
filename: 'photo.jpg',
contentType: 'image/jpeg',
path: photoUri,
title: 'Site photo',
subject: 'Photo export',
text: 'Captured during inspection.',
});

text 로 전달됩니다. EXTRA_TEXT Android에서는 ...로, iOS에서는 두 번째 activity item으로 전달됩니다.

타입 레퍼런스

“타입 참조” 섹션
export interface ShareFileOptions {
filename: string;
base64Data?: string;
path?: string;
contentType?: string;
text?: string;
title?: string;
subject?: string;
android?: AndroidFileSharerOptions;
}
export interface AndroidFileSharerOptions {
chooserTitle?: string;
saveDirectory?: 'downloads' | 'pictures' | 'movies' | 'music' | 'documents';
relativePath?: string;
}
export interface SaveFileResult {
uri?: string;
}
  • ERR_PARAM_NO_FILENAME - filename 이(가) 누락되었거나 비어 있습니다.
  • ERR_PARAM_NO_DATA - base64Data 도, path 도 제공되지 않았습니다.
  • ERR_PARAM_DATA_INVALID - base64 입력을 디코딩할 수 없습니다.
  • ERR_LOCAL_FILE_NOT_FOUND - 제공된 로컬 경로 또는 content URI를 열 수 없습니다.
  • ERR_FILE_CACHING_FAILED - 네이티브 임시 파일을 쓸 수 없습니다.
  • ERR_FILE_SAVE_FAILED - Android에서 파일을 공용 저장소에 저장할 수 없습니다.
  • ERR_ACTIVITY_NOT_FOUND - Android에서 공유 대상을 열 수 없습니다.
  • USER_CANCELLED - iOS share sheet가 완료되지 않고 닫혔습니다.

이 페이지에서는 플러그인의 src/definitions.tsupstream에서 public API가 변경되면 sync를 다시 실행하세요.

사용 중이라면 시작하기 저장 공간과 파일 처리를 계획하려면, 다음 항목과 연결하세요 @capgo/capacitor-file-sharer 사용하기 @capgo/capacitor-file-sharer 사용 시 네이티브 기능을 위한 @capgo/capacitor-data-storage-sqlite @capgo/capacitor-data-storage-sqlite의 구현 세부 사항은, @capgo/capacitor-data-storage-sqlite 사용하기 @capgo/capacitor-data-storage-sqlite 사용 시 네이티브 기능을 위해, @capgo/capacitor-file @capgo/capacitor-file의 구현 세부 사항을 위해, 그리고 @capgo/capacitor-file 사용하기 @capgo/capacitor-file. 사용 시 네이티브 기능을 위해