首頁 >web前端 >js教程 >微信小程式呼叫相機拍照

微信小程式呼叫相機拍照

php中世界最好的语言
php中世界最好的语言原創
2018-06-11 09:25:0314296瀏覽

這次帶給大家微信小程式呼叫相機拍照,微信小程式調用相機拍照的注意事項有哪些,以下就是實戰案例,一起來看一下。

在某些進行簽到的場景,為了防止使用者選擇相簿的照片或不即時拍照,設定相機倒數自動拍照。

一、首先是視圖層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);
}

我相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

BubbleTransition實戰案例詳解

vue props傳遞資料如何實作

#

以上是微信小程式呼叫相機拍照的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn