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


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 相关文章推荐
javaScript中with函数用法实例分析
Jun 08 Javascript
jquery实现的淡入淡出下拉菜单效果
Aug 25 Javascript
实例讲解jquery与json的结合
Jan 07 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
Jun 12 Javascript
JS原型链怎么理解
Jun 27 Javascript
AngularJS入门教程引导程序
Aug 18 Javascript
jQuery基于ajax操作json数据简单示例
Jan 05 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
Jan 23 Javascript
js阻止默认右键的下拉菜单方法
Jan 02 Javascript
vue axios基于常见业务场景的二次封装的实现
Sep 21 Javascript
Vue实现滑动拼图验证码功能
Sep 15 Javascript
jQuery Datatables 动态列+跨列合并实现代码
Jan 30 jQuery
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
星际争霸中的热键
2020/03/04 星际争霸
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
php修改数组键名的方法示例
2017/04/15 PHP
PHP设计模式之注册树模式分析
2018/01/26 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
2018/12/25 PHP
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
JQuery实现的按钮倒计时效果
2015/12/23 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
python中global用法实例分析
2015/04/30 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
Python datetime模块的使用示例
2021/02/02 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
印度最大的旅游网站:MakeMyTrip
2016/10/05 全球购物
纽约通行卡:The New York Pass(免费游览纽约90多个景点)
2017/07/29 全球购物
师范毕业生个人求职信
2013/12/09 职场文书
C++程序员求职信范文
2014/04/14 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
中学推普周活动总结
2015/05/07 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书