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


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 相关文章推荐
HTML页面如何象ASP一样接受参数
Feb 07 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
Mar 03 Javascript
超级简单实现JavaScript MVC 样式框架
Mar 24 Javascript
Jquery网页内滑动缓冲导航的实现代码
Apr 05 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
May 13 Javascript
JavaScript基本类型值-Number类型
Feb 24 Javascript
js如何编写简单的ajax方法库
Aug 02 Javascript
jQuery Layer弹出层传值到父页面的实现代码
Aug 17 jQuery
JS自定义函数实现时间戳转换成date的方法示例
Aug 27 Javascript
使用nvm管理不同版本的node与npm的方法
Oct 31 Javascript
js判断数组是否包含某个字符串变量的实例
Nov 24 Javascript
webpack中的模式(mode)使用详解
Feb 20 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检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
php实现的发送带附件邮件类实例
2014/09/22 PHP
phpStorm2020 注册码
2020/09/17 PHP
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
js特效,页面下雪的小例子
2013/06/17 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
微信小程序slider组件使用详解
2018/01/31 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
如何使用Python脚本实现文件拷贝
2019/11/20 Python
python机器学习库xgboost的使用
2020/01/20 Python
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
高中毕业生自我鉴定例文
2013/12/29 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
2014年行政后勤工作总结
2014/12/06 职场文书
房产公证书格式
2015/01/26 职场文书
成本会计岗位职责
2015/02/03 职场文书
python OpenCV学习笔记
2021/03/31 Python
Pytorch DataLoader shuffle验证方式
2021/06/02 Python