uni-app 小程式 前置攝像頭
阿新 • • 發佈:2021-06-19
在小程式拍照的話,
在查詢官方文件發現,可以通過
頁面程式碼
<!-- 相機拍照 --> <view class="" v-if="ifPhoto"> <!-- 相機 --> <camera :device-position="convert" flash="off" @error="error"class="camera"> </camera> <!--操作 --> <view class="padding bottom_code flex align-center justify-between"> <!-- 返回 --> <view class="code_button" @click="back"> <image src="../../static/face/icon_return.png" mode="aspectFill"</image> </view> <!-- 拍照 --><view class="code_button" @click="takePhoto"> <image src="../../static/face/icon_phone.png" mode="aspectFill"></image> </view> <!-- 切換攝像頭 --> <view class="code_button" @click="showConvert"> <image src="../../static/face/icon_switch.png"mode="aspectFill"></image> </view> </view> </view> <!-- 照片檢視 --> <view class="" v-else> <view class="img_code flex align-center justify-center"> <image :src="src" mode=""></image> </view> <!-- 操作 --> <view class="padding margin-top flex align-center"> <button class="cu-btn round bg-green lg" style="width: 350rpx;" @click="anew">重新拍攝</button> <button class="cu-btn round bg-yellow lg text-white margin-left" style="width: 350rpx;"@click="uploading">上傳</button> </view> </view>
//true 拍照 false 檢視
ifPhoto: true,
//照片
src: null,
//前置或後置攝像頭,值為front, back
convert: 'front'
//拍照 takePhoto() { const ctx = uni.createCameraContext(); ctx.takePhoto({ quality: 'high', success: (res) => { console.log(res); this.src = res.tempImagePath if (this.src != null) { this.ifPhoto = false } } }); }, //攝像頭啟動失敗 error(e) { console.log(e.detail); }, //切換攝像頭 showConvert() { if (this.convert == 'front') { // 後置 this.convert = 'back' } else { // 前置 this.convert = 'front' } }, //返回 back() { uni.navigateBack({ delta: 1 }) }, //重新 anew() { this.ifPhoto = true }, //上傳 uploading() { console.log('上傳'); }
<style lang="scss"> // 相機 .camera { width: 100%; height: 100vh; } //操作 .bottom_code { position: fixed; bottom: 10rpx; left: 0; width: 100%; height: 120rpx; // background-color: #1CA6EC; .code_button { width: 90rpx; height: 90rpx; // border-radius: 50%; image { width: 100%; height: 100%; } } } .img_code { width: 100%; height: 80vh; padding-top: 180rpx; image { width: 100%; height: 100%; } } </style>
最後樣式 因為是模擬器所以沒有 真機除錯就可以了