forked from swathysubhash/react-native-real-path
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.md~
111 lines (80 loc) · 2.57 KB
/
README.md~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
## react-native-get-real-path
Get real file path from file uri
## Installation (iOS)
Currently No Support
## Installation (Android)
```javascript
npm i react-native-get-real-path@https://github.com/Wraptime/react-native-get-real-path.git --save
```
Make alterations to the following files:
* `android/settings.gradle`
```gradle
...
include ':react-native-get-real-path'
project(':react-native-get-real-path').projectDir = new File(settingsDir, '../node_modules/react-native-get-real-path/android')
```
* `android/app/build.gradle`
```gradle
...
dependencies {
...
compile project(':react-native-get-real-path')
}
```
* register module (in MainActivity.java)
* For react-native below 0.19.0 (use `cat ./node_modules/react-native/package.json | grep version`)
```java
import com.rngrp.RNGRPPackage; // <--- import
public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
......
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mReactRootView = new ReactRootView(this);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModuleName("index.android")
.addPackage(new MainReactPackage())
.addPackage(new RNGRPPackage()) // <------- add package
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
mReactRootView.startReactApplication(mReactInstanceManager, "ExampleRN", null);
setContentView(mReactRootView);
}
......
}
```
* For react-native 0.19.0 and higher
```java
import com.rngrp.RNGRPPackage; // <------- add package
public class MainActivity extends ReactActivity {
// ...
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(), // <---- add comma
new RNGRPPackage() // <---------- add package
);
}
```
## Example usage (Android only)
```javascript
// require the module
var RNGRP = require('react-native-get-real-path');
RNGRP.getRealPathFromURI(fileUri).then(filePath =>
console.log(path)
)
```
## Use Case - get images from CameraRoll as base64
* Required: react-native-fs
https://github.com/johanneslumpe/react-native-fs
```javascript
RNGRP.getRealPathFromURI(imageUri).then(path =>
RNFS.readFile(path, 'base64').then(imageBase64 =>
console.log(imageBase64)
)
)
```
* For iOS you can checkout: https://github.com/scottdixon/react-native-upload-from-camera-roll/