更新记录
1.0.10(2024-10-22)
- 优化iOS
1.0.9(2024-10-19)
- 升级iOS版本最低版本为12
1.0.8(2024-10-14)
- 修复iOS在新版本HBuilderX编译报错问题
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.6.8,Android:5.0,iOS:12,HarmonyNext:不确定 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
相册视频选择、相机录像拍照
- 选择相片/拍照
- 直接打开系统相册选择相片
- 直接打开相机拍照
- 直接打开相机录像
集成步骤
- 拷贝demo里的AndroidManifest.xml、Info.plist文件到项目根目录
- 集成插件,集成插件步骤请参考 https://www.cnblogs.com/wenrisheng/p/18323027
- uniappX的demo在示例项目的static文件夹下
接口
import {
UTSImagePicker
} from "@/uni_modules/wrs-uts-imagepicker"
- 选择相片/视频/拍照/录视频
let params = {}
// 选择后保存的目录
params.savePath = plus.io.convertLocalFileSystemURL("_download/selected_file")
// 最多选择数
params.maxCount = 9
// 最小选择数
params.minCount = 1
// 是否允许编辑
params.allowCrop = true
if(this.isAndroid) {
// 0: TYPE_ALL 1: TYPE_IMAGE 2: TYPE_VIDEO 3: TYPE_AUDIO
params.chooseMode = 0
// 是否默认选择上次选择的数据
params.defaultSelectedBefore = true
// params.style = {
// titleBarStyle: {
// titleBackgroundColor: "#FFFFFF",
// titleTextColor: "#000000",
// titleCancelTextColor: "#53575e",
// isDisplayTitleBarLine: true
// },
// bottomBarStyle: {
// bottomNarBarBackgroundColor: "#EEEEEE",
// bottomPreviewSelectTextColor: "#53575e",
// bottomPreviewNormalTextColor: "#9b9b9b",
// bottomEditorTextColor: "#53575e",
// bottomOriginalTextColor: "#53575e",
// isCompleteCountTips: false
// },
// selectMainStyle: {
// statusBarColor: "#FFFFFF",
// selectNormalTextColor: "#9b9b9b",
// selectTextColor: "#FA632D",
// mainListBackgroundColor: "#FFFFFF"
// }
// }
} else {
// params.preferredLanguage = "zh-Hant" // zh-Hans、zh-Hant、en、vi、ar、de、es、fr、ja、ko-KP、pt、ru
// params.oKButtonTitleColorNormal = "#FF0000"
// params.oKButtonTitleColorDisabled = "#706d5f"
// params.naviBgColor = "#FFFFFF"
// params.naviTitleColor = "#000000"
// params.barItemTextColor = "#000000"
// params.iconThemeColor = "#FF0000"
}
UTSImagePicker.picker(params, (resp) => {
let opt = resp.opt
switch (opt) {
case "onSaveFileStart":
// 如果用户选了多个文件则这里调用多次,一般用来保存大文件时显示loading效果
this.showMsg("开始拷贝到文件夹")
break;
case "onPickFinish":
// {"fileArray":[{"pixelWidth":1125,"isHidden":false,"mediaSubtypes":4,"pixelHeight":2436,"isFavorite":false,"duration":0,"fullSizeImageOrientation":1,"sourceType":1,"mediaType":1,"filePath":"/var/mobile/Containers/Data/Application/76E50498-1367-4511-AFFD-3742A1A12953/Documents/Pandora/apps/__UNI__AD6F5BE/www/_download/selected_file/IMG_1203.PNG","sourceFilePath":"/var/mobile/Media/DCIM/101APPLE/IMG_1203.PNG","modificationDate":1722302459.893853,"creationDate":1722246676},{"pixelWidth":3024,"isHidden":false,"location":{"coordinate":{"latitude":23.152283333333333,"longitude":113.40131333333333},"speed":0,"horizontalAccuracy":35,"verticalAccuracy":0,"course":205.2164},"mediaSubtypes":8,"pixelHeight":4032,"isFavorite":false,"duration":0,"fullSizeImageOrientation":6,"sourceType":1,"mediaType":1,"filePath":"/var/mobile/Containers/Data/Application/76E50498-1367-4511-AFFD-3742A1A12953/Documents/Pandora/apps/__UNI__AD6F5BE/www/_download/selected_file/IMG_1202.JPG","sourceFilePath":"/var/mobile/Media/DCIM/101APPLE/IMG_1202.JPG","modificationDate":1722246097.482034,"creationDate":1722235070.828}],"opt":"onPickFinish"}
let fileArrayStr = resp.fileArray
let fileArray = JSON.parse(fileArrayStr)
this.imageArray = []
let length = fileArray.length
for (let i = 0; i < length; i++) {
this.imageArray.push(fileArray[i])
}
this.showMsg("选择结果:" + JSON.stringify(fileArray))
break;
case "onCancel":
this.showMsg("用户取消了选择")
break;
case "onError":
this.showMsg("出错了:" + JSON.stringify(resp))
break;
default:
break;
}
})
参数params属性:
-
savePath 设置选择后保存的目录
-
maxCount 最多选择数
-
minCount 最小选择数
-
allowCrop 是否允许编辑,iOS当maxCount等于1时才生效
-
allowPickingOriginalPhoto 是否允许选择原图
-
allowPickingGif 是否允许选择gif
-
isWithSelectVideoImage 是否允许同时选择视频和图片
-
openType 打开类型,取值范围: openGallery:打开相册,显示所有相片和拍照按钮,常用,openGallery暂时不支持uniappX的iOS项目 openSystemGallery: 打开系统相册 openCamera: 打开相机
-
converHEIC true/false, HEIC图片是否转换为jpg/png
-
maxVideoCount,仅支持Android 最大视频数量
-
minVideoCount,仅支持Android 最小视频数量
-
chooseMode,仅支持Android 选择模式,取值范围: 0: TYPE_ALL 1: TYPE_IMAGE 2: TYPE_VIDEO 3: TYPE_AUDIO
-
defaultSelectedBefore,仅支持Android 是否默认选择上次选择的数据
-
language,仅支持Android 语言,取值范围: -1: SYSTEM_LANGUAGE 0: CHINESE 1: TRADITIONAL_CHINESE 2: ENGLISH 3: KOREA 4: GERMANY 5: FRANCE 6: JAPAN 7: VIETNAM 8: SPANISH 9: PORTUGAL 10: AR 11: RU 12: CS 13: KK
-
isDisplayCamera,仅支持Android 是否显示拍照按钮
-
style,仅支持Android 自定义样式
params.style = {
titleBarStyle: {
titleBackgroundColor: "#FFFFFF",
titleTextColor: "#000000",
titleCancelTextColor: "#53575e",
isDisplayTitleBarLine: true
},
bottomBarStyle: {
bottomNarBarBackgroundColor: "#EEEEEE",
bottomPreviewSelectTextColor: "#53575e",
bottomPreviewNormalTextColor: "#9b9b9b",
bottomEditorTextColor: "#53575e",
bottomOriginalTextColor: "#53575e",
isCompleteCountTips: false
},
selectMainStyle: {
statusBarColor: "#FFFFFF",
selectNormalTextColor: "#9b9b9b",
selectTextColor: "#FA632D",
mainListBackgroundColor: "#FFFFFF"
}
}
-
allowPickingImage,仅支持ios 是否允许选图片
-
allowTakePicture,仅支持ios 是否允许拍照
-
allowPickingVideo,仅支持ios 是否允许选视频
-
allowTakeVideo,仅支持ios 是否允许拍视频
-
allowEditVideo,仅支持ios 是否编辑视频
-
videoMaximumDuration,仅支持ios 视频最大拍摄时间
-
allowPickingMultipleVideo,仅支持ios 是否多选视频
######## 自定义样式颜色属性,仅支持ios
- oKButtonTitleColorNormal
- oKButtonTitleColorDisabled
- naviBgColor
- naviTitleColor
- barItemTextColor
- iconThemeColor
########
-
preferredLanguage,仅支持ios 多语言,取值范围: zh-Hans、zh-Hant、en、vi、ar、de、es、fr、ja、ko-KP、pt、ru
-
needCircleCrop,仅支持ios 是否需要圆形裁剪框
-
scaleAspectFillCrop,仅支持ios 是否图片等比缩放填充
-
mediaTypes,仅支持ios Array类型 打开相机或相册的媒体类型,常用于筛选相册图片或录像,常用的类型有: public.image public.movie public.jpeg public.png public.video 等等
-
videoMaximumDuration,仅支持ios 录像最长时间,单位秒
-
cameraFlashMode,仅支持ios 闪光灯模式:-1: 关闭 0:自动 1: 打开
-
cameraDevice,仅支持ios 前后摄像头,0:后摄像头 1:前摄像头