更新记录

1.4.0(2024-01-10)

无预览组件

* [优化] 拍照新增以下参数  
    * flashModel 闪光灯模式 
    * size 分辨率 
* [优化] 录像新增以下参数 
* size 分辨率 

预览组件

* [新增] 组件属性 
* [新增] 组件方法新增更新预览属性 

1.3.0(2023-12-18)

  • [优化] 优化安卓10无法拍照问题
  • [新增] 无预览组件新增静默录像功能

1.2.0(2023-02-06)

一、新增 1.动态权限验证 2.预览模式,能够拍照,录像 二、优化 优化文件存储路径(保存到程序安装目录下)

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 12.0 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原生插件配置”->”云端插件“列表中删除该插件重新选择


插件使用说明

  • 插件申请权限
    • 存储卡读写权限
    • 摄像头权限
  • 需要在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

使用文档

本文档将不再更新,最新文档请参考以下链接

使用文档

购买说明

购买插件前请先试用,试用通过再购买。在试用中如果遇到任何问题,可与作者联系,QQ:334106817,将全力协助你使用本插件。

隐私、权限声明

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

存储卡读写权限 摄像头权限 录音权限

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

插件不采集任何数据

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

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