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


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 相关文章推荐
bgsound 背景音乐 的一些常用方法及特殊用法小结
May 11 Javascript
jQuery操作select的实例代码
Jun 14 Javascript
For循环中分号隔开的3部分的执行顺序探讨
May 27 Javascript
Javascript 中创建自定义对象的方法汇总
Dec 04 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
Mar 25 Javascript
jQuery判断多个input file 都不能为空的例子
Jun 23 Javascript
canvas学习之API整理笔记(二)
Dec 29 Javascript
JavaScript日期选择功能示例
Jan 16 Javascript
js实现一个简单的数字时钟效果
Mar 29 Javascript
详解Vuejs2.0之异步跨域请求
Apr 20 Javascript
详解原生JS动态添加和删除类
Mar 26 Javascript
vue组件 keep-alive 和 transition 使用详解
Oct 11 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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
php在线打包程序源码
2008/07/27 PHP
PHP分页显示制作详细讲解
2008/11/19 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
2014/09/22 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
JS获取图片lowsrc属性的方法
2015/04/01 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
微信小程序获取微信运动步数的实例代码
2017/07/20 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
对pandas进行数据预处理的实例讲解
2018/04/20 Python
Python实现深度遍历和广度遍历的方法
2019/01/22 Python
通过shell+python实现企业微信预警
2019/03/07 Python
python将视频转换为全字符视频
2019/04/26 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
深入了解Django View(视图系统)
2019/07/23 Python
Python 求数组局部最大值的实例
2019/11/26 Python
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
房地产出纳岗位职责
2013/12/01 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
军人离婚协议书样本
2014/10/21 职场文书
劳动争议和解协议书范本
2014/11/20 职场文书
简历中自我评价范文
2015/03/11 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
浅析MongoDB之安全认证
2021/06/26 MongoDB