微信小程序使用前置摄像头拍照


Posted in Javascript onOctober 22, 2020

本文实例为大家分享了微信小程序使用前置摄像头拍照的具体代码,供大家参考,具体内容如下

微信小程序使用前置摄像头拍照

1、拍照页面:

<template>
 <view title="拍照">
 <camera v-if="openCamera" device-position="front" frame-size="large" class="zipai" @error="error"> </camera>
 <cover-image src="/static/image/renzheng_zz.png" class="zhezhao"></cover-image>
 <cover-view class="wenzi fint34">请将正面人脸放在识别框中,进行拍摄</cover-view>
 <cover-image class="paizhao" src="/static/image/renzheng_pz.png" @click="takePhoto"></cover-image>
 </view>
</template>
 
<script>
 export default {
 data() {
 return {
 openCamera:true
 }
 },
 
 methods: {
 takePhoto() {
 const ctx = wx.createCameraContext()
 ctx.takePhoto({
  quality: 'high',
  success: (res) => {
  let tempFilePath = res.tempImagePath
  uni.navigateTo({
  url:'/pages/renzhengwxtu/renzhengwxtu?src='+tempFilePath
  })
  }
 })
 },
 //用户拒绝授权摄像头
 error(e) {
 this.openCamera=false
 wx.showModal({
  title: '警告',
  content: '若不授权使用摄像头,将无法使用拍照功能!',
  cancelText: '不授权',
  cancelColor: '#1ba9ba',
  confirmText: '授权',
  confirmColor: '#1ba9ba',
  success:(res)=> {
  if (res.confirm) {//允许打开授权页面
  //调起客户端小程序设置界面,返回用户设置的操作结果
  wx.openSetting({
  success:(res)=> {
   res.authSetting = {
   "scope.camera": true
   }
   this.openCamera=true
  },
  })
  } else if (res.cancel) {//拒绝打开授权页面
  wx.navigateBack({delta:1})
  }
  }
 })
 },
 
 }
 }
</script>

2、预览图片页面:

<template>
 <view title="预览图片">
 <image mode="widthFix" :src="src" class="renlian"></image>
 <view class="btns">
 <text @click="takePhoto">重拍</text>
 <text @click="usePhoto">使用照片</text>
 </view>
 </view>
</template>
 
<script>
 export default {
 data() {
 return {
 src: '',
 timeId:null,
 }
 },
 onLoad(option) {
 this.src=option.src
 },
 onHide() {
 clearTimeout(this.timeId);
 this.timeId=null;
 },
 methods: {
 takePhoto() {
 uni.navigateBack({delta: 1});
 },
 usePhoto() {
 this.$request.uploadFileMinipro(this.src,this.retoRenzheng);
 },
 retoRenzheng(){
 this.timeId=setTimeout(()=>{
  var pages = getCurrentPages();
  var prevPage = pages[pages.length - 3]; //上一个页面
  prevPage.fromTu= true;
  uni.navigateBack({delta: 2});
 },200);
 },
 }
 }
</script>

3、上传图片方法:

// uploadFileMinipro
function uploadFileMinipro(tempFilePath,callback){
 // 1.2 上传头像
 let uin =common.getGlobalUserInfo().id;
 let reurl=common.ip;
 uni.uploadFile({
 url: reurl,
 filePath: tempFilePath,
 name: "file",
 formData:{uin:uin},
 success:(res)=>{
 console.log("res=",res);
 // 注意,这里获得是一个string,需要转换一下
 let resData = JSON.parse(res.data);
 if (resData.status == 1) {//<=0:人工返回的错误信息
 setErrorMessage("上传成功");
 if (typeof callback === "function"){
  callback();//刷新当前页面
 }
 
 } else if (resData.status < 1) {
  setErrorMessage(resData.msg)
 } else {
  setErrorMessage()
 }
 },
 fail:(res)=>{
 console.log("上传失败");
 },
 });
}

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery 前台切换网站的样式实现
Jun 22 Javascript
node.js中的console用法总结
Dec 15 Javascript
node.js中的fs.chown方法使用说明
Dec 16 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
Dec 16 Javascript
百度地图给map添加右键菜单(判断是否为marker)
Mar 04 Javascript
sencha ext js 6 快速入门(必看)
Jun 01 Javascript
基于JavaScript实现点击页面任何位置返回
Aug 31 Javascript
angularjs实现搜索的关键字在正文中高亮出来
Jun 13 Javascript
详解Webpack-dev-server的proxy用法
Sep 08 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
Oct 12 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
Sep 11 Javascript
Vue 实例事件简单示例
Sep 19 Javascript
jQuery实现可以计算进制转换的计算器
Oct 19 #jQuery
jQuery实现计算器功能
Oct 19 #jQuery
vue3为什么要用proxy替代defineProperty
Oct 19 #Javascript
jQuery实现推拉门效果
Oct 19 #jQuery
小程序实现左滑删除的效果的实例代码
Oct 19 #Javascript
jQuery实现图片切换效果
Oct 19 #jQuery
jQuery实现回到顶部效果
Oct 19 #jQuery
You might like
解析PayPal支付接口的PHP开发方式
2010/11/28 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
php使用smtp发送支持附件的邮件示例
2014/04/13 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
网页javascript精华代码集
2007/01/24 Javascript
js 加载时自动调整图片大小
2008/05/28 Javascript
JavaScript的parseInt 取整使用
2011/05/09 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
详解js中==与===的区别
2017/01/08 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
浅谈React中的元素、组件、实例和节点
2018/02/27 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
2021/01/19 Javascript
Python中操作mysql的pymysql模块详解
2016/09/13 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
django drf框架中的user验证以及JWT拓展的介绍
2019/08/12 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
pytorch 把图片数据转化成tensor的操作
2021/03/04 Python
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
英国最大的独立摄影零售商:Park Cameras
2019/11/27 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
高三自我鉴定怎么写
2013/10/19 职场文书
水污染治理专业毕业生推荐信
2013/11/14 职场文书
整改通知书格式
2015/04/22 职场文书
六年级作文之关于梦
2019/10/22 职场文书
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL