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 具体设计与实现 说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃 ...
随机推荐
- 在OwinSelfHost项目中获取客户端IP地址
在OwinSelfHost项目中,获取客户端的IP地址可以通过以下方法获得: base.Request.GetOwinContext().Request.RemoteIpAddress 创建一个Owi ...
- 常用 Java 组件和框架分类
WEB 容器 Tomcat https://tomcat.apache.org/ Jetty https://www.jetty.com/ JBoss https://www.jboss.org/ R ...
- h5使用js拉起微信支付
近期,业务需求对接了微信支付,做个总结.web网页想要拉起微信支付,有两种方法: H5下单支付 , JSAPI支付 .首先纯前端做不了微信支付,必须配合后端才能通过微信的下单请求.接下来说说这两种方法 ...
- Unity无法安装Entities 1.2.0 Package的解决方法
会出现如下的错误提示: 本质原因是国内版的Unity使用了自己的Package加速CDN:packages.unity.cn,而不是官方的packages.unity.com.而这个CDN更新了Ent ...
- 直播预告:Service Mesh 技术在美团的落地和挑战
一场突如其来的疫情加深了企业对数字化转型升级的渴望,作为新兴数字化业务的基础,云原生技术的价值日益凸显.当前,越来越多的企业逐步引入容器.微服务/Service Mesh 技术改造业务,实现数据库.P ...
- 载均衡技术全解析:Pulsar 分布式系统的最佳实践
背景 Pulsar 有提供一个查询 Broker 负载的接口: /** * Get load for this broker. * * @return * @throws PulsarAdminExc ...
- Vscode 一次选中多行 光标一次定位多行
1 . 鼠标点击开始位置(定位到行首时,鼠标就点击第一行的行首:定位到行尾时,鼠标就点击第一行的行尾:) 2. 按住shift+alt 点击结束的位置(定位到行首时,鼠标就点击最后一行的行首:定位到 ...
- [oeasy]python0027_整合程序_延迟输出时间_整合两个py程序
整合程序 回忆上次内容 通过搜索发现 time中有函数可以延迟 time.sleep(1) 还可以让程序无限循环 while True: 现在需要两个程序的整合 循环延迟输出 时间输出 编辑 ...
- odoo 给form表单视图内联列表添加按钮
实践环境 Odoo 14.0-20221212 (Community Edition) 代码实现 模块文件组织结构 说明:为了更好的表达本文主题,一些和主题无关的文件.代码已略去 odoo14\cus ...
- Docker 基于Dockerfile创建镜像实践
需求描述 简单说,就是创建一个服务型的镜像,即运行基于该镜像创建的容器时,基于该容器自动开启一个服务.具体来说,是创建一个部署了nginx,uwsgi,python,django项目代码的镜像,运行基 ...