2.1.4 • Published 6 years ago
react-native-open-doc v2.1.4
react-native-open-doc
Open files stored on device for preview - Android and iOS.
Pick files using native file pickers for iOS and Android (UIDocumentPickerViewController / Intent.ACTION_OPEN_DOCUMENT)
Share files on Android (for iOS use the react-native Share.share({ url: selectedUri }) api).
Getting started
$ npm install react-native-open-doc --save
Mostly automatic installation
$ react-native link react-native-open-docNote that the authorities value should be
<your package name>.provider, for example:<provider android:name="android.support.v4.content.FileProvider" android:authorities="com.mydomain.provider" android:exported="false" android:grantUriPermissions="true"> ... </provider>
Manual installation
iOS
- In XCode, in the project navigator, right click
Libraries➜Add Files to [your project's name] - Go to
node_modules➜react-native-open-docand addRNCOpenDoc.xcodeproj - In XCode, in the project navigator, select your project. Add
libRNCOpenDoc.ato your project'sBuild Phases➜Link Binary With Libraries - Run your project (
Cmd+R)<
Android
- Open up
android/app/src/main/java/[...]/MainActivity.java
- Add
import com.capriza.reactlibrary.RNCOpenDocPackage;to the imports at the top of the file - Add
new RNCOpenDocPackage()to the list returned by thegetPackages()method
- Append the following lines to
android/settings.gradle:include ':react-native-open-doc' project(':react-native-open-doc').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-open-doc/android') - Insert the following lines inside the dependencies block in
android/app/build.gradle:implementation project(':react-native-open-doc') - Define a FileProvider
Usage
import RNCOpenDoc from 'react-native-open-doc';
RNCOpenDoc.open(pathToFile);
RNCOpenDoc.share(pathToFile);
RNCOpenDoc.pick(null, (error, files) => {
if (error) {
console.log(`error in RNCOpenDoc.pick ${error}`);
}
else if (files) {
this.handleSelectedFiles(files);
}
});files is an array of objects with the following properties:
fileName(string) e.g. "foo.html"fileSize(number) (iOS only) File size in bytesmimeType(string) (iOS only) e.g. "text/html"uri(string) Example (iOS): "file:///private/var/mobile/Containers/Data/Application/.../foo.html"