更新记录
1.4.2(2024-06-17)
- [优化] 优化录像和拍照分辨率失效问题
1.4.1(2024-06-05)
- [优化] 修复拍照异常闪退问题
1.4.0(2024-01-10)
无预览组件
* [优化] 拍照新增以下参数
* flashModel 闪光灯模式
* size 分辨率
* [优化] 录像新增以下参数
* size 分辨率
预览组件
* [新增] 组件属性
* [新增] 组件方法新增更新预览属性
查看更多
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
插件使用说明
- 插件申请权限
- 存储卡读写权限
- 摄像头权限
- 需要在manifest.json文件中开启以下权限
/* android打包配置 */ "android" : { "permissions" : [ "<uses-feature android:name=\"android.hardware.camera\"/>", "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", "<uses-feature android:name=\"android.hardware.camera.flash\"/>", "<uses-permission android:name=\"android.permission.CAMERA\"/>", "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", "<uses-permission android:name=\"android.permission.INTERNET\"/>", "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>" "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>" "<uses-permission android:name=\"android.permission.USE_CREDENTIALS\"/>", "<uses-permission android:name=\"android.permission.VIBRATE\"/>", "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>", "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" ], "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ] },
使用文档
本文档将不再更新,最新文档请参考以下链接
无预览静默拍照
-
方法
1.start方法
-
用法如下:
this.$refs.refCameraNoPreview.start({ imageName:"image.jpg", isCoverSameName:true, cameraFacing:0 })
-
参数说明:
-
imageName:文件名,可以不传,不传的话系统会自动生成随机文件名
-
isCoverSameName:是否覆盖同名文件,默认:false(1.1.0新增)
-
cameraFacing:摄像头开启模式,0.后置摄像头,1.前置摄像头(1.1.0新增)
-
-
事件
-
onError :发生错误事件,具体可参考示例代码
-
onSuccess: 拍照成功事件,具体可参考示例代码
-
-
index.nvue页面内容如下
<template>
<view class="content" id="idContent" ref="refContent">
<leven-cameraNoPreviewComponent ref="refCameraNoPreview" @onError="onError" @onSuccess="onSuccess">
</leven-cameraNoPreviewComponent>
</view>
</template>
<script>
export default {
data() {
return {};
},
mounted() {
},
methods: {
onError(data) {
console.log(data)
},
onSuccess(data) {
console.log("成功")
console.log(data)
//图片文件路径
console.log("图片文件路径:" + data.detail.path)
},
cameraPicture() {
if (this.$refs.refCameraNoPreview) {
this.$refs.refCameraNoPreview.start({
imageName:"image.jpg",
isCoverSameName:true,
cameraFacing:0
})
}
},
}
};
</script>
<style lang="scss">
.content {
padding: 0 32rpx;
}
.button-group {
margin-bottom: 32rpx;
}
.button-box {
height: 45px;
line-height: 45px;
text-align: center;
border-radius: 5px;
background-color: $uni-color-primary;
color: #FFFFFF;
margin-bottom: 10px;
}
</style>
预览拍照,录制视频
使用
<leven-cameraPreviewComponent style="flex: 1; height: 300px; margin-bottom: 5px;" ref="refCameraNoPreview" @onError="onError"
@onSuccess="onSuccess">
</leven-cameraPreviewComponent>
方法
- takePhoto 拍照
if (this.$refs.refCameraNoPreview) { this.$refs.refCameraNoPreview.takePhoto() }
- cameraFacing 摄像头切换
if (this.$refs.refCameraNoPreview) { this.$refs.refCameraNoPreview.cameraFacing() }
- startRecorder 开始录像
if (this.$refs.refCameraNoPreview) { this.$refs.refCameraNoPreview.startRecorder() }
- stopRecorder 停止录像
if (this.$refs.refCameraNoPreview) { this.$refs.refCameraNoPreview.stopRecorder() }
事件
- onError 错误
onError(data) { console.log(data) }
- onSuccess 成功
onSuccess(data) { console.log("成功") console.log(data.detail) this.noticeText = data.detail.path if (data.detail.type == "image") { this.imageUrl = data.detail.path; } else { this.imageUrl = ""; } }
- 成功回调说明 path:生成的文件路径 type:类型:image/video
使用文档
本文档将不再更新,最新文档请参考以下链接
购买说明
购买插件前请先试用,试用通过再购买。