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


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 页面只自动刷新一次
Jul 10 Javascript
浅谈Javascript嵌套函数及闭包
Nov 09 Javascript
JS 添加网页桌面快捷方式的代码详细整理
Dec 27 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
Mar 09 Javascript
JavaScript6 let 新语法优势介绍
Jul 15 Javascript
基于vue的下拉刷新指令和滚动刷新指令
Dec 23 Javascript
WebSocket实现简单客服聊天系统
May 12 Javascript
node.js操作mongodb简单示例分享
May 25 Javascript
jquery dataTable 后台加载数据并分页实例代码
Jun 07 jQuery
详解在Vue中使用TypeScript的一些思考(实践)
Jul 06 Javascript
vue使用echarts图表的详细方法
Oct 22 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
Apr 26 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对象类型判断
2008/08/27 PHP
ajax php 实现写入数据库
2009/09/02 PHP
php绘制圆形的方法
2015/01/24 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
javaScript对象和属性的创建方法
2007/01/15 Javascript
jquery $.ajax入门应用二
2008/11/19 Javascript
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
2015/03/04 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
input file上传 图片预览功能实例代码
2016/10/25 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
详解Vue使用 vue-cli 搭建项目
2017/04/20 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
2018/11/11 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
element中的$confirm的使用
2020/04/26 Javascript
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
详解python3实现的web端json通信协议
2016/12/29 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
python如何对链表操作
2020/10/10 Python
python+flask编写一个简单的登录接口
2020/11/13 Python
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
个人校本研修方案
2014/05/26 职场文书
房屋租赁意向书范本
2015/05/09 职场文书