是的,uni-app能够调用手机相机。在uni-app中,有多种方式可以调用相机进行拍照。以下是两种常用的方法:
uni.chooseImage
方法一:使用这是一种简单的方法,可以让用户选择使用相机拍照或从相册中选择图片。以下是使用uni.chooseImage
方法调用相机的示例代码:
uni.chooseImage({
count: 1, // 默认9,设置为1表示单选
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['camera'], // 使用相机拍照
success: function (res) {
console.log(res.tempFilePaths); // 拍照图片的路径
}
});
plus.camera.getCamera
方法二:使用对于需要更多控制的场景,如自定义相机界面,可以使用HTML5+的plus.camera.getCamera
方法。这需要在manifest.json中配置使用相机的权限。以下是使用plus.camera.getCamera
方法调用相机的示例代码:
photo() {
plus.camera.getCamera().captureImage(function(e) {
plus.io.resolveLocalFileSystemURL(e, function(entry) {
entry.file(function(file) {
this.img = entry.toLocalURL(); // 图片的本地路径
this.imgfile = file.name; // 图片的文件名
});
}, function(e) {
console.log("读取拍照文件错误:" + e.message);
});
});
}
需要注意的是,plus
对象是HTML5+的API,仅在支持HTML5+的环境中有效,如在DCloud的HBuilderX中运行的5+App和部分小程序平台。
总结来说,uni-app提供了灵活的方式来调用手机相机,开发者可以根据具体需求选择合适的方法。