문서 제공자를 사용하는 React Native용 문서 선택기
반응 네이티브 문서 선택기
참고: 버전 3.3.2부터 |_+_| 접두사가 붙은 git 버전 태그를 사용하고 있습니다. |_+_|. 이것은 표준 형식이며 워크플로에 변경 사항이 없음을 의미합니다.
중단: 새 인터페이스: 돌아가야 하는 경우 v2 분기를 사용하십시오. PR은 누락된 것을 추가할 수 있습니다.
지아 베넷 모이스처라이저 리뷰
다음을 위한 React Native 래퍼:
- 애플의 |_+_|
- 안드로이드 |_+_| / |_+_|
- 윈도우 |_+_|
설치
v
iCloud에 액세스하려면 iCloud 문서를 활성화해야 합니다.
RN >= 0.60
RN >= 0.60을 사용하는 경우 |_+_|만 실행하십시오. ios 디렉토리에서. 그런 다음 프로젝트를 다시 빌드하십시오.
RN<0.60 / Manual Instructions
보다 이것
불
|_+_| 그리고 |_+_|
사용 |_+_| 또는 |_+_| 사용자가 파일을 선택할 수 있도록 문서 선택기를 엽니다. 두 메서드 모두 Promise를 반환합니다. |_+_| 단일 선택만 허용하고 Promise는 해당 단일 결과로 해결됩니다. |_+_| 다중 선택을 허용하고 반환된 약속은 항상 결과 배열로 확인됩니다.
옵션
v3.3.2
: UIDocumentPickerViewController
:
선택할 수 있는 문서의 유형입니다. 단일 유형 문자열로 유형의 배열일 수 있습니다.
- Android에서는 |_+_|와 같은 MIME 유형입니다. 또는 |_+_|와 같은 부분 MIME 유형. 보다 일반적인 MIME 유형 .
- iOS에서는 Apple이어야 합니다. 균일 유형 식별자
- 만약 |_+_| 생략하면 |_+_|로 처리됩니다. 또는 |_+_|.
- KitKat(API 레벨 19) 이전의 Android에서는 다중 유형 문자열이 지원되지 않습니다. Jellybean은 |_+_|로 대체됩니다. 둘 이상의 값이 있는 배열을 제공하는 경우.
Intent.ACTION_OPEN_DOCUMENT
:
기본값은 |_+_|인 부울입니다. 만약 |_+_| true로 설정하면 선택한 파일의 내용을 읽고 결과 개체에서 제공합니다.
-
대용량 파일의 경우 성능이 크게 저하될 수 있습니다. (파일은 메모리로 완전히 읽혀지고 나중에 결과 개체에 추가하기 위해 base64로 인코딩됩니다.)
-
그러나 선택기를 관리하는 스레드 내에서 직접 파일을 읽는 것은 Windows에서 필요할 수 있습니다. Windows 앱은 기본적으로 다운로드 폴더와 자체 앱 폴더만 읽을 수 있으며 파일이 이러한 위치 밖에 있으면 직접 액세스할 수 없습니다. 그러나 사용자가 파일 선택기를 통해 파일을 선택하면 해당 파일에 대한 권한이 암시적으로 부여됩니다.
Intent.ACTION_PICK
https://docs.microsoft.com/en-us/windows/uwp/files/file-access-permissions
불행히도 그 권한은 전체 앱에 부여되지 않고 filepicker를 처리한 스레드에만 부여됩니다. 따라서 파일을 직접 읽는 것이 유용할 수 있습니다.
-
|_+_|를 사용할 수 있습니다. Android 및 IOS에서 선택한 파일을 읽습니다.
결과
개체 a |_+_| Promise는 배열 a |_+_|의 객체 또는 객체로 확인됩니다. Promise는 다음 키를 포함합니다.
Windows.Storage.Pickers
:
사용자가 선택한 문서를 나타내는 URI입니다. iOS에서는 |_+_| 앱 컨테이너에 있는 임시 파일의 URI입니다. Android에서는 |_+_| ContentResolver로 액세스해야 하는 DocumentProvider에서 제공하는 문서의 URI입니다.
npm i --save react-native-document-picker
:
파일의 MIME 유형입니다. Android에서 일부 DocumentProvider는 문서에 MIME 유형을 제공하지 않을 수 있습니다. iOS에서 이 MIME 유형은 Apple의 내부 Uniform Type Identifiers 데이터베이스에 따라 파일 확장자에 대한 최상의 MIME 유형을 기반으로 합니다.
pod install
:
파일의 표시 이름입니다. 이것은 일반적으로 파일의 파일 이름이지만 Android는 이것이 모든 DocumentProviders의 파일 이름이 될 것이라고 보장하지 않습니다.
DocumentPicker.pick(options)
:
문서의 파일 크기입니다. Android에서 일부 DocumentProvider는 문서에 대해 이 정보를 제공하지 않을 수 있습니다.
[UWP만 해당] |_+_|:
|_+_| 옵션이 있는 경우 선택한 파일의 base64 인코딩 콘텐츠 |_+_|(으)로 설정되었습니다.
DocumentPicker.pickMultiple(options)
|_+_| |_+_|로 사용할 몇 가지 일반적인 유형을 제공합니다. 값에 따라 이러한 유형은 각 플랫폼(Android의 MIME 유형, iOS의 UTI)에 대해 올바른 형식을 사용합니다.
최고의 라이트 테마 vscode
- |_+_|: 모든 문서 유형, Android에서는 |_+_|, iOS에서는 |_+_| (일부 바이너리 및 아카이브 유형은 |__+_|에서 상속되지 않습니다.)
- |_+_|: 모든 이미지 유형(|_+_| 또는 |_+_|)
- |_+_|: 일반 텍스트 파일 예: |_+_| (|_+_| 또는 |_+_|)
- |_+_|: 모든 오디오 유형(|_+_| 또는 |_+_|)
- |_+_|: PDF 문서(|_+_| 또는 |_+_|)
- |_+_|: Zip 파일(|_+_| 또는 |_+_|)
- |_+_|: CSV 파일(|_+_| 또는 |_+_|)
pick
사용자가 파일을 선택하지 않고 문서 선택기를 취소하면(Android에서 시스템 뒤로 버튼을 누르거나 iOS에서 취소 버튼을 눌러) Promise는 취소 오류와 함께 거부됩니다. |_+_|를 사용하여 이 오류를 확인할 수 있습니다. 무시하고 인터페이스에서 더 이상 필요하지 않은 부분을 정리할 수 있습니다.
예시
pickMultiple
다음과 같이 표시됩니다.
그것을 다시 보내는 방법?
나는 사용하는 것이 좋습니다 https://github.com/johanneslumpe/react-native-fs 수정해야 했다 업로더.m 그래서 |_+_|를 사용합니다. |_+_| 옵션.
나는 RFS catch 블록에 던져질 파일 길이에 대한 검사를 추가했습니다.
pick
pickMultiple
도움 요청: 개선 사항
- 제약 조건에 대한 Xcode 경고 수정
- 지원 옵션 UIDocumentPickerViewController
- 자체적으로 업로드를 처리합니까?
다운로드 세부 정보:
작가: 엘릭스0
깃허브: https://github.com/Elyx0/react-native-document-picker
#react-native #react #프로그래밍