@capacitor/camera
Camera API 提供使用相机拍照或从相册中选择现有照片的能力。
安装
npm install @capacitor/camera@latest-5
npx cap sync
iOS
iOS 要求在 Info.plist 中为您的应用添加并填写以下使用描述:
NSCameraUsageDescription(Privacy - Camera Usage Description)NSPhotoLibraryAddUsageDescription(Privacy - Photo Library Additions Usage Description)NSPhotoLibraryUsageDescription(Privacy - Photo Library Usage Description)
阅读 iOS 指南 中的 配置 Info.plist 以获取有关在 Xcode 中设置 iOS 权限的更多信息。
Android
此 API 需要将以下权限添加到您的 AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
您也可以仅在需要请求这些权限的 Android 版本上指定这些权限:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="29"/>
存储权限用于读取/保存照片文件。
阅读 Android 指南 中的 设置权限 以获取有关设置 Android 权限的更多信息。
此外,由于 Camera API 会启动一个单独的 Activity 来处理拍照,您应该在 App 插件中监听 appRestoredResult,以处理在 Activity 运行时您的应用被操作系统终止的情况下发送的任何相机数据。
变量
此插件将使用以下项目变量(在您应用的 variables.gradle 文件中定义):
androidxExifInterfaceVersion:androidx.exifinterface:exifinterface的版本(默认值:1.3.6)androidxMaterialVersion:com.google.android.material:material的版本(默认值:1.8.0)
PWA 说明
Camera 插件需要 PWA Elements 才能工作。
示例
import { Camera, CameraResultType } from '@capacitor/camera';
const takePicture = async () => {
const image = await Camera.getPhoto({
quality: 90,
allowEditing: true,
resultType: CameraResultType.Uri
});
// image.webPath 将包含一个可以设置为图片 src 的路径。
// 您可以使用 image.path 访问原始文件,该路径可以
// 传递给 Filesystem API 以读取图片的原始数据,
// 如果需要(或者将 resultType: CameraResultType.Base64 传递给 getPhoto)
var imageUrl = image.webPath;
// 现在可以设置到图片的 src
imageElement.src = imageUrl;
};
API
getPhoto(...)
getPhoto(options: ImageOptions) => Promise<Photo>
提示用户从相册中选择照片,或使用相机拍摄新照片。
| 参数 | 类型 |
|---|---|
options | |
返回:
Promise<Photo>
自从: 1.0.0
pickImages(...)
pickImages(options: GalleryImageOptions) => Promise<GalleryPhotos>
允许用户从相册中选择多张图片。 在 iOS 13 及更早版本上,只允许选择一张图片。
| 参数 | 类型 |
|---|---|
options | |
返回:
Promise<GalleryPhotos>
自从: 1.2.0
pickLimitedLibraryPhotos()
pickLimitedLibraryPhotos() => Promise<GalleryPhotos>
仅 iOS 14+:允许用户更新其受限的照片库选择。 在 iOS 15+ 上,选择器关闭后返回所有受限照片。 在 iOS 14 上或如果用户授予了相册完全访问权限,则返回空数组。
返回:
Promise<GalleryPhotos>
自从: 4.1.0
getLimitedLibraryPhotos()
getLimitedLibraryPhotos() => Promise<GalleryPhotos>
仅 iOS 14+:返回从受限照片库中选择的照片数组。
返回:
Promise<GalleryPhotos>
自从: 4.1.0
checkPermissions()
checkPermissions() => Promise<PermissionStatus>
检查相机和相册权限。
返回:
Promise<PermissionStatus>
自从: 1.0.0