Cordova 插件相机

17 Mar 2025 | 6 分钟阅读

需要插件相机才能访问设备的相机功能。此插件使用户可以从设备中拍摄任何照片,并可以访问图像库中的文件。 如果要向用户显示图片,可以使用 FILEURIDATAURI 对象。

它由一段代码脚本组成,该脚本使您的应用程序能够使用设备相机及其相关的硬件功能。要启用设备的相机功能,我们需要设置一个全局 navigator.camera 对象,该对象执行拍摄照片和从设备图库中选择图像的任务。 但是,在未执行 deviceready 事件之前,我们无法使用此对象。

我们可以在以下情况下使用此插件

  • 它用于访问设备的图像库。
  • 它使用户能够访问设备的相机功能。
  • 它可以访问图像的本地路径。

安装

要在您的 Cordova 应用中添加相机插件,请键入以下命令

此命令仅适用于 Cordova 5.0+ 版本。 较旧版本可以使用 deprecate id 安装插件。

方法

插件相机中有两种方法。 这些方法如下:

  • navigator.camera.getPicture( cameraSuccess, cameraError, [ cameraOptions ])
  • navigator.camera.cleanup(onSuccess, onFail)

1. navigator.camera.getPicture

此方法用于启用相机的功能,我们可以从相机捕获图像并从本地设备库访问图像。 之后,将此特定图像作为 base64 编码的字符串传递给成功回调函数。 我们也可以将图像作为图像文件的 URI 传递。 您还将获得一个返回的对象,即 CameraPopoverHandle。 此对象用于重新定位图像文件。

工作方式

调用此方法时,它将打开设备的默认相机应用程序,并允许用户捕获图像。如果 Camera.sourceType 等于 Camera.PictureSourceType.CAMERA,则以默认方式执行此操作。 捕获照片后,相机将关闭,并且应用程序也将恢复。

要从现有设备库中访问图像, Camera.sourceType 应该等于 Camera.PictureSourceType.PHOTOLIBRARYCamera.PictureSourceType.SAVEDPHOTOALBUM。 您还将获得一个返回的对象,即 CameraPopoverHandle。 此对象用于重新定位图像文件。

然后,返回的值将以指定格式发送到 cameraSuccess 回调函数。 它主要取决于指定的对象,即 cameraOptions。 返回值有两种可用的格式,如下所示:

  • 它是一种默认格式,由一个 String 对象组成。 此字符串对象表示本地存储中图像文件的路径。
  • 它是一个 String 对象,由 base64 编码的图像组成。

此方法在不同的平台中受支持,例如 AndroidiOSTizenWindows 8 等。

2. navigator.camera.cleanup(onSuccess, onFail)

camera 的静态方法,主要用于在调用 camera.getPicture 方法后删除存储在临时设备存储中的中间图像文件。 要应用此函数, Camera.sourceType 应该等于 Camera.PictureSourceType.CAMERA,并且 Camera.destinationType 对象也应该等于 Camera.DestinationType.FILE_URI

注意:此方法仅适用于 iOS 平台。

示例

camera.onSuccess

camera 的静态 typedef 方法,主要用于提供图像数据。

参数

imageData: 它是字符串类型的对象,主要提供图像数据的 Base64 编码或图像文件 URI。

camera.onError

它也是 camera 的静态 typedef 方法,用于提供错误消息。

参数

message: 它是字符串类型的对象,设备原生代码在其中提供消息。

camera.CameraOptions

它是一个可选参数,用于自定义设备的相机设置。

性质

名称默认类型说明
encodingTypeJPEGEncodingType它选择图像文件的返回编码。
mediaTypePICTUREMediaType它主要用于选择媒体类型。 它仅在 PictureSourceTypePHOTOLIBRARYSAVEDPHOTOALBUM 时适用。
sourceTypeCAMERAPictureSourceType它的主要任务是设置图像的来源。
destinationTypeFILE_URIDestinationType它用于选择返回值的格式。
quality50数字它表示保存图像的质量,表示范围在 0 到 100 之间,其中 100 表示具有完整分辨率屏幕,而文件压缩没有损失。
allowEditfalseBoolean它允许用户在选择之前简单地编辑图像。
targetWidth数字它表示图像的宽度(以像素为单位),用于缩放图像。 必须将其与 targetHeight 对象一起应用。
targetHeight数字它表示图像的高度(以像素为单位),用于缩放图像。
correctOrientationBoolean它用于旋转图像。
saveToPhotoAlbumBoolean捕获图像后,此对象会将图像保存在现有的照片库中。
cameraDirectionBACK方向它用于选择相机(前置或后置)。
popoverOptionsCameraPopoverOptions它仅适用于 iOS 平台,主要指定 iPad 上的弹出窗口位置。

代码

HTML

CSS

JavaScript

输出

Cordova Plugin Camera