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


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 相关文章推荐
身份证号码前六位所代表的省,市,区, 以及地区编码下载
Apr 12 Javascript
js动态设置div的值下例子
Oct 29 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
Dec 16 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
Sep 19 Javascript
javascript日期格式化方法汇总
Oct 04 Javascript
angularjs 源码解析之injector
Aug 22 Javascript
JavaScript实现DOM对象选择器
Sep 24 Javascript
Vue.js bootstrap前端实现分页和排序
Mar 10 Javascript
关于vue状态过渡transition不起作用的原因解决
Apr 09 Javascript
vue-cli 3.x配置跨域代理的实现方法
Apr 12 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
Jun 26 Javascript
原生JavaScript实现留言板
Jan 10 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下常用正则表达式整理
2010/10/26 PHP
PHP采集利器 Snoopy 试用心得
2011/07/03 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
JavaScript中获取元素索引的函数
2010/09/10 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
Python代码调试的几种方法总结
2015/04/15 Python
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
举例讲解Django中数据模型访问外键值的方法
2015/07/21 Python
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
余弦相似性计算及python代码实现过程解析
2019/09/18 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
appium+python adb常用命令分享
2020/03/06 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
Python os库常用操作代码汇总
2020/11/03 Python
拉歌口号大全
2014/06/13 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
入党申请书怎么写?
2019/06/21 职场文书
MySQL大小写敏感的注意事项
2021/05/24 MySQL
如何利用pygame实现打飞机小游戏
2021/05/30 Python
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL
Java实现带图形界面的聊天程序
2022/06/10 Java/Android
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android