网站建设问答小编今天给大家整合了一篇有关《微信小程序实现拍照界面自定义实现》的文章,关于微信小程序实现拍照界面自定义实现的详细内容欢迎往下阅读,下面就由小编一一给大家介绍,一起去了解吧!
最近有一个项目需要对拍照界面进行自定义,之前使用的是html写的项目界面,但是在html中想要自定义拍照界面十分的困难,于是想到了使用微信小程序来实现拍照界面的自定义
在微信小程序中实现自定义拍照功能主要使用到如下的组件和API
1:camera组件
常见的属性有:
(1):mode
应用模式,只在初始化时有效,不能动态变更,参数有:normal(相机模式),scanCode(扫码模式) ,默认为normal
(2):device-position
摄像头朝向,参数有front(前置),back(后置),默认为back
(3):flash
闪关灯,参数有:auto(自动,手机相机目前的闪光灯状态), on(打开闪光灯), off(关闭闪光灯),默认为auto
(4):binderror
用户不允许使用摄像头时触发事件
例如:
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端:
(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,
})
}
}
});
},
})
具体相信如下:
在接口处理上传文件的流程和正常的表单上传文件流程相同,这里就不多叙述了
扫二维码与项目经理沟通
我们在微信上24小时为你服务
小蚂蚁微信号: 2067876620
目前,《微信小程序实现拍照界面自定义实现》页面仍在完善中,后续将为您提供丰富、全面的关于《微信小程序实现拍照界面自定义实现》的最佳回答,小编将持续从百度问答、百度百科、搜狗问答、搜狗百科、微博问答、头条百科、悟空问答、知乎热门问答以及部分合作站点渠道收集和补充完善信息。
深圳蚂蚁网络网站建设公司提供,系统定制,微信开发、小程序定制、微商城开发、网站建设、网站排名优化推广等互联网项目定制开发服务。版权声明:如发现内容存在版权问题,烦请提供相关信息发邮件至3310459304@qq.com,我们将及时沟通与处理。本站内容均来源于网络,涉及言论、版权与本站无关。