문서 제공자를 사용하는 React Native용 문서 선택기

문제를 제거하기 위해 도구를 사용해보십시오

문서 제공자를 사용하는 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

도움 요청: 개선 사항

다운로드 세부 정보:

작가: 엘릭스0

깃허브: https://github.com/Elyx0/react-native-document-picker

#react-native #react #프로그래밍