uni-app 小程序 前置摄像头
在小程序拍照的话,uni.chooseImage()可以直接调取摄像头拍照,而如果要调用前置摄像头,这个api就没有提供了。
在查找官方文档发现,可以通过camera有提供这么一个组件,页面内嵌的区域相机组件。

页面代码
<!-- 相机拍照 -->
<view class="" v-if="ifPhoto">
<!-- 相机 -->
<camera :device-position="convert" flash="off" @error="error"class="camera"> </camera>
<!-- 操作 -->
<view class="padding bottom_code flex align-center justify-between">
<!-- 返回 -->
<view class="code_button" @click="back">
<image src="../../static/face/icon_return.png" mode="aspectFill"</image>
</view>
<!-- 拍照 -->
<view class="code_button" @click="takePhoto">
<image src="../../static/face/icon_phone.png" mode="aspectFill"></image>
</view>
<!-- 切换摄像头 -->
<view class="code_button" @click="showConvert">
<image src="../../static/face/icon_switch.png" mode="aspectFill"></image>
</view>
</view>
</view>
<!-- 照片查看 -->
<view class="" v-else>
<view class="img_code flex align-center justify-center">
<image :src="src" mode=""></image>
</view>
<!-- 操作 -->
<view class="padding margin-top flex align-center">
<button class="cu-btn round bg-green lg" style="width: 350rpx;" @click="anew">重新拍摄</button>
<button class="cu-btn round bg-yellow lg text-white margin-left" style="width: 350rpx;"@click="uploading">上传</button>
</view>
</view>
data内容
//true 拍照 false 查看
ifPhoto: true,
//照片
src: null,
//前置或后置摄像头,值为front, back
convert: 'front'
JS 放置methods里面
//拍照
takePhoto() {
const ctx = uni.createCameraContext();
ctx.takePhoto({
quality: 'high',
success: (res) => {
console.log(res);
this.src = res.tempImagePath
if (this.src != null) {
this.ifPhoto = false
}
}
});
},
//摄像头启动失败
error(e) {
console.log(e.detail);
},
//切换摄像头
showConvert() {
if (this.convert == 'front') {
// 后置
this.convert = 'back'
} else {
// 前置
this.convert = 'front'
}
},
//返回
back() {
uni.navigateBack({
delta: 1
})
},
//重新
anew() {
this.ifPhoto = true
},
//上传
uploading() {
console.log('上传');
}
css
<style lang="scss">
// 相机
.camera {
width: 100%;
height: 100vh;
} //操作
.bottom_code {
position: fixed;
bottom: 10rpx;
left: 0;
width: 100%;
height: 120rpx;
// background-color: #1CA6EC; .code_button {
width: 90rpx;
height: 90rpx; // border-radius: 50%;
image {
width: 100%;
height: 100%;
}
}
}
.img_code {
width: 100%;
height: 80vh;
padding-top: 180rpx; image {
width: 100%;
height: 100%;
}
}
</style>
最后样式 因为是模拟器所以没有 真机调试就可以了

uni-app 小程序 前置摄像头的更多相关文章
- Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解
Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解 说明:Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解,加密算法,是现在每个软件项目里必须用到的内容. 广泛应用在包括 ...
- Java生鲜电商平台-电商中"再来一单"功能架构与详细设计(APP/小程序)
Java生鲜电商平台-电商中"再来一单"功能架构与详细设计(APP/小程序) 说明:在实际的业务场景中(无论是TO B还是TO C)不管是休闲食品.餐饮.水果.日用百货.母婴等高频 ...
- uni与小程序,vue的区别
标签区别 uni使用小程序的标签,vue使用web端的标签 标签名变化的: 标签描述\类别 vue uniapp 文本 span\font text 链接 a navigator/ router-li ...
- 小程序学习三 一切的开始app() 小程序的注册
现在打开 app.js //app.js App({ onLaunch(options) { //小程序初始化 // console.log("小程序初始化", options) ...
- 小迪安全 Web安全 基础入门 - 第十天 - 信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取
一.本节知识点思维导图 二.APP-外在资产收集 1.将APP安装在模拟器中,修改模拟器代理设置,使用Fiddler.Burpsuite.Charles等抓包工具抓取APP访问的http协议数据包,抓 ...
- 小迪安全 Web安全 基础入门 - 第三天 - 抓包&封包&协议&APP&小程序&PC应用&WEB应用
一.抓包工具 1.Fiddler.Fiddler是一个用于HTTP调试的代理服务器应用程序,能捕获HTTP和HTTPS流量,并将其记录下来供用户查看.它通过使用自签名证书实现中间人攻击来进行日志记录. ...
- uni微信小程序优化,几行代码就能省100kb的主包空间?
不是标题党,我们公司的项目确确实实是省下了100kb的主包空间,而且还是在没有牺牲任何的性能和业务的前提下实现的. 但是100kb是根据项目大小,所以你用这个插件可能省下超过100kb或者更少. 直接 ...
- uni微信小程序优化,打包后的import vue路径是可删除的
这次的优化我公司项目主包只减小了32kb,但是减小的不仅仅是主包,所有分包均在没有改动任何业务代码的情况下完成了压缩空间的优化. 主包分包压缩空间的优化都要视项目而定,32kb只是我公司的小程序项目. ...
- Java生鲜电商平台-API接口设计之token、timestamp、sign 具体架构与实现(APP/小程序,传输安全)
Java生鲜电商平台-API接口设计之token.timestamp.sign 具体设计与实现 说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃 ...
- API接口设计之token、timestamp、sign 具体架构与实现(APP/小程序,传输安全)
Java生鲜电商平台-API接口设计之token.timestamp.sign 具体设计与实现 说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃 ...
随机推荐
- 3568F-麒麟KylinOS国产操作系统演示案例
- 配置hive环境步骤(zookeeper高可用集群已搭建)
安装mysql:1. 检查当前环境是否安装mysql服务(命令:rpm -qa | grep -i mysql)2. 卸载自带的mysql3. 卸载软件:rpm -e --nodeps mysql-l ...
- 树莓派4B-控制直流电机
树莓派4B-控制直流电机 一.硬件介绍 树莓派 L298N电机驱动模块 直流电机 外接电源 杜邦线 二.硬件连接 原理图: 注意:ENA和ENB的跳冒必须安上去,如果没有拿杜邦线连通! 三.代码编写 ...
- Java 数据类型的包装数据类型
什么是包装数据类型 Java是一个面向对象的编程语言,但基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型. 集合框架里面需要存储对象,不能存储基本数据类型,所以需要存储包装 ...
- oeasy教您玩转vim - 78 - # 操作系统文件格式 fileformat
文件系统换行格式 fileformat 回忆保留环境的细节 上次我们了解了viminfo 他能够保存 命令行历史 标记 寄存器 把他和 :mksession 一起使用就可以完美复原环境了 还有什么 ...
- DuiLib的编译
Duilib编译需要注意两点: 加入预处理器:WIN32;_DEBUG;_WINDOWS;UILIB_STATIC; 到这一步还是报错,报错的是DuiString += 这一行报错,还有Util这 ...
- Fiddler+proxifier解决抓取不到客户端接口的问题
工作中偶尔会遇到Fiddler抓不到客户端接口问题,那么就要借助第三方工具proxifier来实现了: 下载地址: 原地址:链接: https://pan.baidu.com/s/1JPJ4cILEs ...
- 题解 CF653F Paper task
CF653F Paper task 给定一个长度为 \(n\) 和括号串,求本质不同的合法括号串个数.\(n\le 5\times 10^5\). 考虑如果不是求本质不同,可以想到 DP. 设 \(f ...
- 【SpringCloud】Re03 Feign
Feign是一个声明式的HttpClient?更简洁的实现Http请求发送 安装Feign组件: 配置Feign的依赖坐标: <?xml version="1.0" enco ...
- 【Oracle】Windows-19C 下载安装
下载 Download 官网下载地址[需要Oracle账号]: https://www.oracle.com/database/technologies/oracle-database-softwar ...