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


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比较两个对象是否相等的方法
Feb 06 Javascript
Angular中的Promise对象($q介绍)
Mar 03 Javascript
javascript中$(function() {});写与不写有哪些区别
Aug 10 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
Nov 02 Javascript
第一次记录Bootstrap table学习笔记(1)
May 18 Javascript
VUE实现一个分页组件的示例
Sep 13 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
Dec 26 Javascript
create-react-app构建项目慢的解决方法
Mar 14 Javascript
微信小程序之分享页面如何返回首页的示例
Mar 28 Javascript
Vue 动态组件components和v-once指令的实现
Aug 30 Javascript
JavaScript实现简单随机点名器
Nov 21 Javascript
在Chrome DevTools中调试JavaScript的实现
Apr 07 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
Cannot modify header information错误解决方法
2008/10/08 PHP
php 向访客和爬虫显示不同的内容
2009/11/09 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
nodejs 使用http进行post或get请求的实例(携带cookie)
2019/01/03 NodeJs
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
详解package.json版本号规则
2019/08/01 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
python实现输入数字的连续加减方法
2018/06/22 Python
python中字符串内置函数的用法总结
2018/09/13 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
Python time库基本使用方法分析
2019/12/13 Python
python相对企业语言优势在哪
2020/06/12 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
大学生简单自荐信
2013/11/10 职场文书
服务员岗位责任制
2014/02/11 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
护理实习生带教计划
2015/01/16 职场文书
励志语录:你若不勇敢,谁替你坚强
2019/11/08 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
德劲DE1105机评
2022/04/05 无线电