微信小程序实现倒计时调用相机自动拍照功能


Posted in Javascript onJune 10, 2018

本文实例为大家分享了微信小程序定时拍照的具体代码,供大家参考,具体内容如下

在某些进行签到的场景,为了防止用户选择相册的照片或者不实时拍照,设置相机倒计时自动拍照。

一、首先是视图层index.wxml,视图层主要负责显示组件和图片。

<!--index.wxml-->

 <view class="userinfo-login">
 <view class="page-body">
  <view class="page-body-wrapper">
  <view wx:if="{{src}}"></view> 
  <!-- 如果存在已经拍好的照片就不再显示调用摄像头的组件-->
  <view wx:else>
   <camera device-position="back" flash="off" binderror="error" style="width: 100%; height: 200px;"></camera>
  <!-- 调用摄像头的组件-->
</view>
  <image wx:if="{{src}}" mode="widthFix" src="{{src}}"></image>
  <!-- 显示拍好的照片-->
  </view>
 </view>
 </view>

二、逻辑层index.js,调用倒计时函数并且调用摄像头拍照并保存图片。

//index.js

const app = getApp()
Page({
 data: {
 userInfo: {},
 counting: false//倒计时
 },
 onLoad: function () {
 this.daojishi();//一进来就拍照倒计时
 this.ctx = wx.createCameraContext()//创建摄像头对象
 },
 //倒计时
 daojishi: function () {
 var that = this;
 if (!that.data.counting) {
  //开始倒计时5秒
  countDown(that, 5);
 }
 }
})
//倒计时函数 在page外

function countDown(that, count) {
 if (count == 0) {
 //等于0时拍照 
 that.ctx.takePhoto({
  quality: 'high',
  success: (res) => {
  that.setData({
   src: res.tempImagePath
  })
  wx.showToast({
   title: '拍照完成',
  })
  }
 })
 that.setData({
  counting: false
 })
 return;
 }
 wx.showLoading({//加载时显示倒计时
 title: '拍照倒计时'+count+'秒',
 })

 setTimeout(function () {
 wx.hideLoading()
 }, 1000)
 that.setData({
 counting: true,
 })
 setTimeout(function () {
 count--;
 countDown(that, count);
 }, 1000);
}

主要实现就是这样。

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

Javascript 相关文章推荐
JS 图片缩放效果代码
Jun 09 Javascript
基于JQuery的一句代码实现表格的简单筛选
Jul 26 Javascript
最简单的js图片切换效果实现代码
Sep 24 Javascript
javascript字母大小写转换的4个函数详解
May 09 Javascript
让人蛋疼的JavaScript语法特性
Sep 30 Javascript
javascript框架设计读书笔记之字符串的扩展和修复
Dec 02 Javascript
innerHTML在IE中报错解决方案
Dec 15 Javascript
vue.js实现请求数据的方法示例
Feb 07 Javascript
vue 之 .sync 修饰符示例详解
Apr 21 Javascript
vue 本地环境跨域请求proxyTable的方法
Sep 19 Javascript
JS前后端实现身份证号验证代码解析
Jul 23 Javascript
JavaScript读取本地文件常用方法流程解析
Oct 12 Javascript
深入浅析Vue中的Prop
Jun 10 #Javascript
vue项目部署上线遇到的问题及解决方法
Jun 10 #Javascript
js技巧之十几行的代码实现vue.watch代码
Jun 09 #Javascript
浅谈JS对象添加getter与setter的5种方法
Jun 09 #Javascript
让你5分钟掌握9个JavaScript小技巧
Jun 09 #Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 #jQuery
JS实现区分中英文并统计字符个数的方法示例
Jun 09 #Javascript
You might like
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
js DOM 元素ID就是全局变量
2012/09/20 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
微信JSSDK上传图片
2015/08/23 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
2018/08/31 Javascript
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
2018/10/26 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
python函数返回多个值的示例方法
2013/12/04 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Python爬虫实例扒取2345天气预报
2018/03/04 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
python 实现两个npy档案合并
2020/07/01 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
电子商务专员岗位职责
2013/12/11 职场文书
我的中国心演讲稿
2014/09/04 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书
同事欢送会致辞
2015/07/31 职场文书
思品教学工作总结
2015/08/10 职场文书
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
JS数组去重详情
2021/11/07 Javascript