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


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代码分享
Mar 25 Javascript
深入理解javascript构造函数和原型对象
Sep 23 Javascript
学习javascript的闭包,原型,和匿名函数之旅
Oct 18 Javascript
深入理解$.each和$(selector).each
May 15 Javascript
使用Promise解决多层异步调用的简单学习心得
May 17 Javascript
jQuery Ajax请求后台数据并在前台接收
Dec 10 Javascript
React-Native左右联动List的示例代码
Sep 21 Javascript
微信小程序将字符串生成二维码图片的操作方法
Jul 17 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
Sep 11 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
May 09 Javascript
js通过canvas生成图片缩略图
Oct 02 Javascript
Vue-router编程式导航的两种实现代码
Mar 04 Vue.js
深入浅析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 常见郁闷问题答解
2006/11/25 PHP
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
2015/01/24 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
2015/03/04 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017/03/08 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
微信小程序实现下载进度条的方法
2017/12/08 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
微信公众号获取用户地理位置并列出附近的门店的示例代码
2019/07/25 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
Python爬取三国演义的实现方法
2016/09/12 Python
Python连接Redis的基本配置方法
2018/09/13 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
火山咖啡:Volcanica Coffee
2019/10/29 全球购物
管理失职检讨书
2014/02/12 职场文书
城管综合整治方案
2014/05/01 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
好人好事新闻稿
2015/07/17 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
iPhone13将有八大升级
2021/04/15 数码科技
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python