1.上傳視頻:
使用插件 :react-native-image-picker
import * as ImagePicker from 'react-native-image-picker'
const options = { title: '選擇視頻', cancelButtonTitle: '取消', takePhotoButtonTitle: '錄制視頻', chooseFromLibraryButtonTitle: '選擇視頻', mediaType: 'video', videoQuality: 'medium' // 視頻質量 'low', 'medium', or 'high' on iOS, 'low' or 'high' on Android };
ImagePicker.showImagePicker(options, (response) => {})
2.上傳圖片:
使用插件 :react-native-syan-image-picker
組件調用時,支持傳入一個 options
對象,可設置的屬性如下:
屬性名 | 類型 | 是否可選 | 默認值 | 描述 |
---|---|---|---|---|
imageCount | int | 是 | 6 | 最大選擇圖片數目 |
isRecordSelected | bool | 是 | false | 記錄當前已選中的圖片 |
isCamera | bool | 是 | true | 是否允許用戶在內部拍照 |
isCrop | bool | 是 | false | 是否允許裁剪,imageCount 為1才生效 |
CropW | int | 是 | screenW * 0.6 | 裁剪寬度,默認屏幕寬度60% |
CropH | int | 是 | screenW * 0.6 | 裁剪高度,默認屏幕寬度60% |
isGif | bool | 是 | false | 是否允許選擇GIF,暫無回調GIF數據 |
showCropCircle | bool | 是 | false | 是否顯示圓形裁剪區域 |
circleCropRadius | float | 是 | screenW * 0.5 | 圓形裁剪半徑,默認屏幕寬度一半 |
showCropFrame | bool | 是 | true | 是否顯示裁剪區域 |
showCropGrid | bool | 是 | false | 是否隱藏裁剪區域網格 |
quality | int | 是 | 90 | 壓縮質量(安卓無效,固定魯班壓縮) |
minimumCompressSize | int | 是 | 100 | 小於100kb的圖片不壓縮(Android) |
enableBase64 | bool | 是 | false | 是否返回base64編碼,默認不返回 |
freeStyleCropEnabled | bool | 是 | false | 裁剪框是否可拖拽(Android) |
rotateEnabled | bool | 是 | true | 裁剪是否可旋轉圖片(Android) |
scaleEnabled | bool | 是 | true | 裁剪是否可放大縮小圖片(Andro |
import SyanImagePicker from 'react-native-syan-image-picker';
const options = {/*配置參考上表*/}
SyanImagePicker .asyncShowImagePicker(options) .then(photos => { // 選擇成功 console.log('當前選擇的圖片', photos); }) .catch(err => { // 取消選擇,err.message為"取消" })