uniapp APP拍照功能

1.最近公司有个app项目要用到拍照功能,于是上网各种查阅资料,于是先从uniapp文档中看文档有没有快便捷的api直接调用,有两三个uni.chooseFile ,uni.chooseMedia , uni.chooseImage但是我发现都不支持app端,然后技术总监必须要前置摄像头,跳过用户手动反转摄像头这个步骤,因为这样用户体验不好,让我更要快马加鞭的找方案,废话不多说直接上代码

HTML5+:HTML5+ API Reference

/* 签到签退拍照 */
			PhotoHandler() {
				return new Promise((resolve, reject) => {
					try {
						/* 2为前置,1为后置 */
						let cmr = plus.camera.getCamera();
						/* 照片格式:0:png,1:jpg */
						let fmt = cmr.supportedImageFormats[0];
						/* 拍照 */
						cmr.captureImage(filePath => {
							plus.io.resolveLocalFileSystemURL(filePath,
								entry => {
									/* 获取文件数据对象 */
									entry?.file(function(file) {
										/* 读取文件对象实例 */
										const fileReader = new plus.io.FileReader()
										/* 以URL编码格式读取文件数据内容 */
										fileReader.readAsDataURL(file, 'utf-8')
										/* 读取文件完成回调 */
										fileReader.onloadend = function(evt) {
											console.log(evt.target.result, 'evt');
											// resolve(uni.base64ToArrayBuffer(result.base64))
										}
									})
								}, error => {
									plus.nativeUI.alert(error.message)
								})
							plus.nativeUI.toast("拍照成功", { verticalAlign: 'center' });
						}, err => {
							plus.nativeUI.toast('取消拍照', { verticalAlign: 'center' });
						}, { index: 2, format: fmt })

					} catch (e) {
						plus.nativeUI.toast('拍照出错,请稍后重试', { verticalAlign: 'center' });
					}
				})
			},

代码直接复制就能用,我这边后端要求base64,你们也可以按实际需求修改编码,代码中注释也加好了不用你们一个个查阅文档看api,如有不对欢迎指点~

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值