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


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 相关文章推荐
JS创建优美的页面滑动块效果 - Glider.js
Sep 27 Javascript
JS实现Enter键跳转及控件获得焦点
Aug 12 Javascript
JQuery对class属性的操作实现按钮开关效果
Oct 11 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
Sep 04 Javascript
Angular.js自定义指令学习笔记实例
Feb 24 Javascript
详解vue父子模版嵌套案例
Mar 04 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
Dec 18 Javascript
webpack4.0 入门实践教程
Oct 08 Javascript
在Layui中实现开关按钮的效果实例
Sep 29 Javascript
原生JS与CSS实现软件卸载对话框功能
Dec 05 Javascript
继承行为在 ES5 与 ES6 中的区别详解
Dec 24 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
Jun 16 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 学习提高路线分享
2011/10/23 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
2013/03/06 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
微信小程序左右滑动切换页面详解及实例代码
2017/02/28 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
vue webpack build资源相对路径的问题及解决方法
2020/06/04 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
python计算对角线有理函数插值的方法
2015/05/07 Python
Python教程之全局变量用法
2016/06/27 Python
Python Cookie 读取和保存方法
2018/12/28 Python
Python中的集合介绍
2019/01/28 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
Python定时发送天气预报邮件代码实例
2019/09/09 Python
PHP统计代码行数的小代码
2019/09/19 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
通过实例解析python subprocess模块原理及用法
2020/10/10 Python
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
播音主持女孩的自我评价分享
2013/11/20 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
婚前协议书
2014/04/15 职场文书
企业党员个人自我评价
2014/09/20 职场文书
房屋维修申请报告
2015/05/18 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
pytorch 使用半精度模型部署的操作
2021/05/24 Python