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


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 相关文章推荐
jQuery Validation插件remote验证方式的Bug解决
Jul 01 Javascript
JS清除IE浏览器缓存的方法
Jul 26 Javascript
JS实现跟随鼠标闪烁转动色块的方法
Feb 26 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
Feb 01 Javascript
Js的Array数组对象详解
Feb 22 Javascript
Angular.js中处理页面闪烁的方法详解
Mar 09 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
Aug 24 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
Oct 27 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
Nov 20 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
Aug 31 Javascript
vue自定义tap指令及tap事件的实现
Sep 18 Javascript
vue实现路由监听和参数监听
Oct 29 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的explode和implode的使用说明
2011/07/17 PHP
php+mysql数据库实现无限分类的方法
2014/12/12 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
Angular4表单验证代码详解
2017/09/03 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
Python 代码性能优化技巧分享
2012/08/07 Python
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
在Django中创建第一个静态视图
2015/07/15 Python
python如何在终端里面显示一张图片
2016/08/17 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
python能做什么 python的含义
2019/10/12 Python
Python语言异常处理测试过程解析
2020/01/08 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
车祸赔偿收入证明
2014/01/09 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
保护环境建议书作文500字
2015/09/14 职场文书
个人向公司借款协议书
2016/03/19 职场文书
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android