更新记录

1.0.0(2020-09-23)

发布


平台兼容性

Android Android CPU类型 iOS
armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择


说明

1、该插件为组件型原生插件,只提供相机的预览界面和api核心功能,开发者可以根据自己需求更灵活的进行UI布局。 2、插件预览界面大小、位置可以自定义,可以通过css或 cover-view等组件结合为丰富样式。 3、使用该插件需要在nvue下使用。 4、拍照过程自动对焦、自动闪光灯。 5、拍照返回结果有本地文件路径和base64字符串两种方式。

使用组件

在nvue页面中加入标签

<huihui-Camera ref='myComponent' width=300 height=400 :style="{width:300,height:400}" > </huihui-Camera>

预览的宽和高可以采用变量,为数值。


打开摄像头预览

this.$refs.myComponent.startPreview(object,callBack)

object 对象参数

参数 类型 默认值 说明
cameraId 数值 0 相机镜头 1-前置 0-后置

callBack 回调

参数 类型 默认值 说明
code 数值 预览结果编码:
0 成功
-1 失败
msg 字符串 预览结果描述

注意: android调用之前请进行权限申请判断,以防止首次使用时没有权限,参照示例。


切换镜头

this.$refs.myComponent.switchCamera()

拍照

this.$refs.myComponent.takePhoto(object,callBack)

object 对象参数

参数 类型 默认值 说明
outputMode 数值 0 输出方式:
1 保存本地并返回本地路径
0 返回照片base64码
savePath 字符串 如果outputMode为1时,该参数需要提供,
为本地文件目录绝对地址

callBack 回调

参数 类型 默认值 说明
code 数值 拍照结果编码:
0 成功
-1 失败
msg 字符串 拍照结果描述
data 字符串 当outputMode=1时为照片本地绝对路径
当outputMode=0时为照片 base64编码


关闭预览

this.$refs.myComponent.stopPreview();


示例

标签

<huihui-Camera  ref='myComponent' :width="width" :height="height" v-bind:style="{width:width,height:height}"></huihui-Camera>

变量


const systeinfo=uni.getSystemInfoSync();
this.width=systeinfo.screenWidth;
this.height =systeinfo.screenHeight;


预览

if( uni.getSystemInfoSync().platform=='android'){
                getApp().globalData.requestAndroidPermission('android.permission.CAMERA')
                .then((result)=>{
                    if(result==1){
                        this.$refs.myComponent.startPreview({cameraId:0},(res)=>{
                            console.log(res);
                        }); 
                    }           
                });
            }else{
                this.$refs.myComponent.startPreview({cameraId:0},(res)=>{
                    console.log(res);
                    uni.showToast({
                        title:res.msg
                    });
                }); 
            }


切换镜头

this.$refs.myComponent.switchCamera();


拍照

方式一: 
const dir="_doc/pic";
let path = plus.io.convertLocalFileSystemURL(dir);
this.$refs.myComponent.takePhoto({
    outputMode:0,
    },(res)=>{ 
     if(res.code!=0){
         uni.showToast({
            title:res.msg
         })
         return;
     }
     console.log(res)  
});

方式二:

`
const dir="_doc/pic";
let path = plus.io.convertLocalFileSystemURL(dir);
this.$refs.myComponent.takePhoto({
    savePath:path,
    outputMode:1,
    },(res)=>{ 
     if(res.code!=0){
         uni.showToast({
            title:res.msg
         })
         return;
     }  
     console.log(res);

});


关闭预览

this.$refs.myComponent.stopPreview();

隐私、权限声明

1. 本插件需要申请的系统权限列表:

android: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> ios: NSCameraUsageDescription

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问