ios 전용 함수 3개

설명
앱 외부에 저장 연동하기
Tags
download
file
External Storage
ios
 

ios 전용 함수

  • openDocument : 파일 내용 미리보기
  • previewDocument : 파일 공유와 관련된 여러 메뉴 창
  • excludeFromBackupKey : iCloud에 백업되는 것 방지하기
// Copyright 2016 wkh237@github. All rights reserved. // Use of this source code is governed by a MIT-style license that can be // found in the LICENSE file. import { NativeModules, DeviceEventEmitter, Platform, NativeAppEventEmitter, } from 'react-native' const RNFetchBlob:RNFetchBlobNative = NativeModules.RNFetchBlob /** * Open a file using UIDocumentInteractionController * @param {string} path Path of the file to be open. * @param {string} scheme URI scheme that needs to support, optional * @return {Promise} */ function previewDocument(path:string, scheme:string) { if(Platform.OS === 'ios') return RNFetchBlob.previewDocument('file://' + path, scheme) else return Promise.reject('RNFetchBlob.openDocument only supports IOS.') } /** * Preview a file using UIDocumentInteractionController * @param {string} path Path of the file to be open. * @param {string} scheme URI scheme that needs to support, optional * @return {Promise} */ function openDocument(path:string, scheme:string) { if(Platform.OS === 'ios') return RNFetchBlob.openDocument('file://' + path, scheme) else return Promise.reject('RNFetchBlob.previewDocument only supports IOS.') } /** * Set excludeFromBackupKey to a URL to prevent the resource to be backuped to * iCloud. * @param {string} url URL of the resource, only file URL is supported * @return {Promise} */ function excludeFromBackupKey(path:string) { return RNFetchBlob.excludeFromBackupKey('file://' + path); } export default { openDocument, previewDocument, excludeFromBackupKey }

[1] openDocument

// tmp파일로 저장하고, 화면에 보여줌 (공유 눌러서 이미지 저장 가능) export const iosFileDownloadOpenDocument = (fileLink: string) => RNFetchBlob.config({ fileCache: true, appendExt: 'png', // ImageView 컴포넌트에 첨부할 때 확장자가 있어야하므로, 'jpg', 'png' 등 확장자 추가 }) .fetch('GET', fileLink, { //some headers .. }) .then(resp => { // console.log(resp); if (Platform.OS === 'ios') { RNFetchBlob.ios.openDocument(resp.data); } });
notion image

[2] previewDocument

// tmp파일로 저장하고, 화면에 보여줌 (공유 눌러서 이미지 저장 가능) export const iosFileDownloadPreviewDocument = (fileLink: string) => RNFetchBlob.config({ fileCache: true, appendExt: 'png', // ImageView 컴포넌트에 첨부할 때 확장자가 있어야하므로, 'jpg', 'png' 등 확장자 추가 }) .fetch('GET', fileLink, { //some headers .. }) .then(resp => { // console.log(resp); if (Platform.OS === 'ios') { RNFetchBlob.ios.previewDocument(resp.data); } });
notion image