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


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 相关文章推荐
JS中的public和private对象,即static修饰符
Jan 18 Javascript
JavaScript新窗口与子窗口传值详解
Feb 11 Javascript
JavaScript中的立即执行函数表达式介绍
Mar 15 Javascript
浅谈jQuery中的事件
Mar 23 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
Feb 15 Javascript
详解Vue 多级组件透传新方法provide/inject
May 09 Javascript
vue-router history模式下的微信分享小结
Jul 05 Javascript
详解微信小程序开发之formId使用(模板消息)
Aug 27 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
Nov 04 Javascript
JavaScript this使用方法图解
Feb 04 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
May 06 Javascript
pnpm对npm及yarn降维打击详解
Aug 05 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
php下使用curl模拟用户登陆的代码
2010/09/10 PHP
php之Memcache学习笔记
2013/06/17 PHP
php实现网站留言板功能
2015/11/04 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
2010/03/05 Javascript
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
vue中如何实现pdf文件预览的方法
2018/07/12 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
js函数柯里化的方法和作用实例分析
2020/04/11 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
Python数据结构之单链表详解
2017/09/12 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
python实现支付宝转账接口
2019/05/07 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
Python用SSH连接到网络设备
2021/02/18 Python
土耳其时尚潮流在线购物网站:Trendyol
2017/10/10 全球购物
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
班级学习计划书
2014/04/27 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
触电现场处置方案
2014/05/14 职场文书
2015年个人剖析材料范文
2014/12/29 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
2015年师德师风自我评价范文
2015/03/05 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
工地食品安全责任书
2015/05/09 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
PO模式在selenium自动化测试框架的优势
2022/03/20 Python
浅析Python OpenCV三种滤镜效果
2022/04/11 Python