网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

微信小程序實現拍照界面自定義實現

發布時間:2020-05-14 10:09 所屬欄目:小程序開發教程

最近有一個項目需要對拍照界面進行自定義,之前使用的是html寫的項目界面,但是在html中想要自定義拍照界面十分的困難,于是想到了使用微信小程序來實現拍照界面的自定義

在微信小程序中實現自定義拍照功能主要使用到如下的組件和API

1:camera組件

常見的屬性有:

(1):mode

應用模式,只在初始化時有效,不能動態變更,參數有:normal(相機模式),scanCode(掃碼模式) ,默認為normal

(2):device-position

攝像頭朝向,參數有front(前置),back(后置),默認為back

(3):flash

閃關燈,參數有:auto(自動,手機相機目前的閃光燈狀態), on(打開閃光燈), off(關閉閃光燈),默認為auto

(4):binderror

用戶不允許使用攝像頭時觸發事件

例如:

<camera device-position="back" flash="off" >  
</camera>  

2:拍攝照片API(CameraContext.takePhoto)

參數說明:

(1)quality

成像質量,參數有:high(高質量),normal(普通質量),low(低質量),默認為normal

(2)success

接口調用成功的回調函數

(3)fail

接口調用失敗的回調函數

例如:

//拍攝照片  
wx.createCameraContext().takePhoto({  
  quality: 'high',//拍攝質量(high:高質量 normal:普通質量 low:高質量)  
  success: (res) => {  
    //拍攝成功  
    //照片文件的臨時文件  
    var file = res.tempImagePath;  
  },  
  fail: (res) => {  
    //拍攝失敗  
  },  
})  

3:上傳拍照文件API(uploadFile)

參數說明:

url:上傳文件的服務器地址

filePath:要上傳文件資源的路徑 (本地路徑)

name:文件對應的 key,開發者在服務端可以通過這個 key 獲取文件的二進制內容

formData:HTTP 請求中其他額外的參數

success:接口調用成功的回調函數

fail:接口調用失敗的回調函數

例如:

wx.chooseImage({  
  success (res) {  
    const tempFilePaths = res.tempFilePaths  
    wx.uploadFile({  
      url: 'https://example.weixin.qq.com/upload', //僅為示例,非真實的接口地址  
      filePath: tempFilePaths\[0\],  
      name: 'file',  
      formData: {  
        'user': 'test'  
      },  
      success: (res) => {  
        //上傳成功  
      },  
      fail: function(t) {  
        //上傳失敗  
    },  
    })  
  }  
})  

4:根據如上我們就可以實現在微信小程序中自定義拍照頁面來實現上傳

(1):wxml端:

<!--pages/web/index.wxml-->  
<camera binderror="handleCameraError" device-position="{{devicePosition}}" flash="off"  wx:if="{{authCamera}}">  
<cover-view>  
    <cover-image class="line" src="/images/outline.png"></cover-image>  
</cover-view>  
</camera>  
<button type="primary" bindtap="takePhoto">拍照</button>  
<button type="primary" bindtap="reverseCamera">攝像頭切換</button>  
<view class="error-handler" wx:if="{{!authCamera}}">  
    <button class="nobtn" openType="openSetting">打開相機授權</button>  
</view>  

(2):js端

// pages/web/index.js  
Page({  
  /\*\*  
   \* 頁面的初始數據  
   \*/  
  data: {  
    devicePosition:'back',  
    authCamera: false,//用戶是否運行授權拍照  
  },  
  handleCameraError:function() {  
    wx.showToast({  
      title:'用戶拒絕使用攝像頭',  
      icon: 'none'  
    })  
  },  
  reverseCamera:function(){  
    this.setData({  
      devicePosition: "back" === this.data.devicePosition ? "front" : "back"  
  });  
  },  
  takePhoto:function() {  
    //拍攝照片  
    wx.createCameraContext().takePhoto({  
      quality: 'high',//拍攝質量(high:高質量 normal:普通質量 low:高質量)  
      success: (res) => {  
        //拍攝成功  
        //照片文件的臨時文件  
        var file = res.tempImagePath;  
        console.log(file)  
        //上傳圖片到服務器  
        wx.uploadFile({  
          url: 'XXXX', //上傳服務器地址  
          filePath: file,  
          name: 'file',  
          formData: {  
            'test': 'test'  
          },  
          success: (res) => {  
            //上傳成功  
          },  
          fail: function(t) {  
            //上傳失敗  
          },  
        })  
      },  
      fail: (res) => {  
        //拍攝失敗  
      },  
    })  
  },  
  /\*\*  
   \* 生命周期函數--監聽頁面顯示  
   \*/  
  onShow: function () {  
    wx.getSetting({  
      success: (res) => {  
          if (res.authSetting\["scope.camera"\]) {  
              this.setData({  
                authCamera:true,  
              })  
          } else {  
            this.setData({  
              authCamera:false,  
            })  
          }  
      }  
    });  
  },  
})  

具體相信如下:

 

在接口處理上傳文件的流程和正常的表單上傳文件流程相同,這里就不多敘述了


易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/25167.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×