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


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 相关文章推荐
JavaScript 变量作用域分析
Jul 04 Javascript
jQuery源码分析-01总体架构分析
Nov 14 Javascript
javascript实现详细时间提醒信息效果的方法
Mar 11 Javascript
js模糊查询实例分享
Dec 26 Javascript
BootStrap便签页的简单应用
Jan 06 Javascript
原生js实现中奖信息无间隙滚动效果
Jan 18 Javascript
JS实现异步上传压缩图片
Apr 22 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
Jan 21 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
May 01 Javascript
微信小程序音乐播放器开发
Nov 20 Javascript
JavaScript动态生成表格的示例
Nov 02 Javascript
Html5生成验证码的示例代码
May 10 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计算税后工资的方法
2015/07/28 PHP
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
用js一次改变多个input的readonly属性值的方法
2014/06/11 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
2014/10/09 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
javascript制作sql转换为stringBuffer的小工具
2015/04/03 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
Augularjs-起步详解
2016/07/08 Javascript
JS实现图片剪裁并预览效果
2016/08/12 Javascript
浅谈Angular7 项目开发总结
2018/12/19 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
实例解析Python设计模式编程之桥接模式的运用
2016/03/02 Python
python数据结构之链表详解
2017/09/12 Python
一份python入门应该看的学习资料
2018/04/11 Python
keras 读取多标签图像数据方式
2020/06/12 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
创业计划书的内容步骤和要领
2014/01/04 职场文书
政治表现评语
2014/05/04 职场文书
淘宝活动总结范文
2014/06/26 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
巴黎圣母院观后感
2015/06/10 职场文书
环保证明
2015/06/23 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python