react-native-hunterslog-media-picker v4.4.9
react-native-hunterslog-media-picker
React Native Media Picker component, only used in Hunterslog Project. Do not copy or modify in any circumstances.
Table of contents
Install
npm install react-native-hunterslog-media-picker --save
Also you need to install dependencies plugin if not installed yet:
npm install react-native-video --save
npm install react-native-asset-thumbnail --save
Use rnpm to automatically complete the installation:rnpm link react-native-hunterslog-media-picker
rnpm link react-native-video
rnpm link react-native-asset-thumbnail
or link manually like so:
iOS
- Libraries need to be added to XCode, follow direction at here:
- RCTImageResizer in ./ios
- RNCamera in ./ios
- RTCCameraRoll in ./node_modules/react-native/Libraries
- RNAssetThumbnail in node_modules/react-native-asset-thumbnail
- Insert this to Info.plist
<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) want to acccess your Camera Library</string>- Use it as a independent component MediaHunterslogPicker
Android
// file: android/settings.gradle
...
include ':react-native-hunterslog-media-picker'
project(':react-native-hunterslog-media-picker').projectDir = new File(settingsDir, '../node_modules/react-native-hunterslog-media-picker/android')// file: android/app/build.gradle
...
dependencies {
...
compile project(':react-native-hunterslog-media-picker')
}<!-- file: android/app/src/main/AndroidManifest.xml -->
<manifest ...>
...
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application...>
...
<activity android:name="com.falco.mediapicker.MediaPickerActivity" android:screenOrientation="portrait"/>
...
<activity android:name="com.falco.mediapicker.PhotoPreviewActivity" />
<activity android:name="com.falco.mediapicker.VideoPreviewActivity" />
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="[package name].fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"></meta-data>
</provider>
...
</application>
...// file: android/app/src/main/java/com/<...>/MainApplication.java
...
import com.falco.mediapicker.MediaHunterslogPickerPackage; // <-- add this import
public class MainApplication extends Application implements ReactApplication {
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new MediaHunterslogPickerPackage() // <-- add this line
);
}
...
}Create xml folder in ./res, and create a xml file named "file_paths.xml":
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path name="hunterslog_img" path="Android/data/[package name]/files/Pictures/" />
</paths>Usage
var Platform = require('react-native').Platform;
var MediaPicker = require('react-native-hunterslog-media-picker');
/**
* The method will launch native module
* @params {Int} max_photo Max number of photo can be uploaded
* @params {Int} max_video Max number of video can be uploaded
* @params {Int} max_video_duration Maximun seconds a video can be captured
* @params {Object} selectedMedia List of selected media, used in case Edit or go back from Create post after
* selected some photos, videos
*/
MediaPicker.showMediaPicker(max_photo, max_video, max_video_duration, selectedMedia, (response) => {
// Data is an Array of selected media
console.log('Response = ', response);
...
});[{'Location':{'Lat':10.254,'Lng':101.5458},'Url':'file:///storage/...','ThumbUrl':'base64String'},{'Location':{'Lat':10.254,'Lng':101.5458},'Url':'file:///storage/...','ThumbUrl':'base64String'},...]The format of media file will be 'file:///storage...' for Android, put it in Image tag:
<Image source={this.state.avatarSource} style={styles.uploadAvatar} />9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago