A小程序没有开通人脸识别功能,B小程序开通了人脸识别。
总体思路是:从A小程序需要进行人脸识别的地方携带参数跳转到B小程序进行人脸识别,识别后把参数传递回来。
A小程序的参考代码如下:文章来源:https://www.toymoban.com/news/detail-641948.html
//人脸识别相关 start
powerDrawerFace(e){
var that = this
that.setData({
faceOfReservation: e.currentTarget.dataset.id
})
// console.log(that.data.faceOfReservation.personName+","+that.data.faceOfReservation.personIdCard)
that.navigateToTargetMiniProgram(that.data.faceOfReservation.personName,that.data.faceOfReservation.personIdCard);
},
//携带参数跳到B小程序
navigateToTargetMiniProgram(name,idCardNumber) {
wx.navigateToMiniProgram({
appId: 'B小程序的appId',
path: 'pages/index/index?name='+name+'&idCardNumber='+idCardNumber,
extraData: {
foo: 'bar'
},
envVersion: 'develop',//B小程序的开发版本 正式版本注释即可。
success(res) {
// 跳转成功的回调函数
},
fail(res) {
// 跳转失败的回调函数
}
});
},
//监听B小程序返回时携带的参数并进行逻辑判断。
onShow() {
var that=this;
wx.onAppShow(res=>{
console.log(res)
var extraData=res.referrerInfo.extraData;
if(extraData!=null){
var params={}
if(extraData.foo.errCode==0){
console.log(that.data.faceOfReservation.id)
params = {
id: that.data.faceOfReservation.id,
faceRecogFlag: 1,
}
}else{
params = {
id: that.data.faceOfReservation.id,
faceRecogFlag: -1,
}
}
console.log(params)
//进行A小程序后端代码的修改
reservableUpdate(params).then(res => {
if(res.data.success){
// wx.reLaunch({
// url: '/pages/myBooking/myBooking',
// })
this.getReservationOrderList()
}
})
}
})
},
//人脸识别相关 end
B小程序的代码参考如下:文章来源地址https://www.toymoban.com/news/detail-641948.html
//人脸识别相关 start
onLoad: function (options) {
// options 参数包含了跳转时携带的参数
this.facialRecognitionVerify(options.name,options.idCardNumber);
// if(options!=null){
// var name = options.name;
// var idCardNumber = options.idCardNumber;
// if(name!=null&&idCardNumber!=null){
// this.facialRecognitionVerify(name,idCardNumber);
// }
// this.setData({
// name: name,
// idCardNumber: idCardNumber
// })
// }
},
//启动人脸识别操作
facialRecognitionVerify(name,idCardNumber) {
// if(name==null||idCardNumber==null){
// if(this.data.name!=null&&this.data.idCardNumber!=null){
// name=this.data.name;
// idCardNumber=this.data.idCardNumber;
// }else{
// this.faceRecognitionComplete("姓名和身份证不能为空")
// return;
// }
// }
let that = this;
wx.startFacialRecognitionVerify({
name: name,
idCardNumber: idCardNumber,
checkAliveType: 2,
//人脸识别成功回调通知
success(res) {
that.faceRecognitionComplete(res)
//后端校验(最好是加)
// var verifyResult = res.verifyResult;
// wx.request({
// url: '/faceCheck/faceCheck.htm?action=faceIdentifyCheck',
// data: {'name':name,'idCardNumber':idCardNumber,
// 'verifyResult ':verifyResult
// },
// header: {
// 'content-type': 'application/json'
// },
// success (res) {
// console.log(res.data)
// }
// })
},
//人脸识别失败的回调通知
fail: function (res) {
wx.showModal({
title: '提示',
showCancel: false,
content: "人脸识别失败!" + res.errCode + "," + res.errMsg,
success: function (res) {
if (res.confirm) {
// wx.navigateBack();
that.faceRecognitionComplete(res)
}
}
});
},
});
},
//携带参数返回原先的小程序
faceRecognitionComplete(result) {
console.log(result)
wx.navigateBackMiniProgram({
extraData: {
foo: result //注意跳转回来,需要用foo字段。
},
success(res) {
// 返回成功
console.log(res)
}
})
}
//----end
到了这里,关于微信小程序实现人脸识别(从一个没有开通人脸核身的小程序跳转到要给开通人脸核身的小程序,进行人脸识别后再跳转回来)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!