@capacitor/camera
Camera API 提供了通过摄像头拍摄照片或从相册选择现有照片的功能。
安装
npm install @capacitor/camera
npx cap sync
iOS
iOS 需要在应用的 Info.plist
中添加并填写以下使用说明:
NSCameraUsageDescription
(隐私 - 相机使用说明
)NSPhotoLibraryAddUsageDescription
(隐私 - 相册添加使用说明
)NSPhotoLibraryUsageDescription
(隐私 - 相册使用说明
)
阅读 iOS 指南 中的 配置 Info.plist 部分,了解如何在 Xcode 中设置 iOS 权限的更多信息。
Android
此 API 需要在 AndroidManifest.xml
中添加以下权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
存储权限用于读取/保存照片文件。
阅读 Android 指南 中的 设置权限 部分,了解如何设置 Android 权限的更多信息。
另外,由于 Camera API 会启动一个单独的 Activity 来处理拍照,你应该在 App
插件中监听 appRestoredResult
事件,以处理操作系统在 Activity 运行时终止应用时可能发送的任何相机数据。
变量
该插件将使用以下项目变量(定义在应用的 variables.gradle
文件中):
$androidxExifInterfaceVersion
:androidx.exifinterface:exifinterface
版本(默认:1.3.3
)$androidxMaterialVersion
:com.google.android.material:material
版本(默认:1.6.1
)
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>