export default { name: 'verifyAgain', onShow() { console.log('开始二次验证', '用户token==>', this.$store.state.userInfo.user_token, '是否需要==>', this.$store.state.gestureAgain) // 获取当前页面的URL this.currentURL = this.$mp.page.route; // 只有再用户登录 且 需要二次验证 的情况下判断才有意义 if (this.$store.state.userInfo.user_token && this.$store.state.gestureAgain) { console.log('开始判断设备...==>', uni.getSystemInfoSync().platform) if (uni.getSystemInfoSync().platform == "ios") { this.appleORan == 1; this.getingSupport(1); console.log('设备为ios') } else if (uni.getSystemInfoSync().platform === "android") { this.appleORan == 0; this.getingSupport(0); console.log('设备为安卓') } else { this.appleORan == 0; this.getingSupport(0); console.log('设备未知,默认为安卓') } } }, destroyed() { // this.$store.commit('setGestureAgain',true); }, data() { return { appleORan: null, // 判断是苹果还是安卓(苹果:1;安卓:0;) currentURL: null, // 获取当前页面的URL } }, methods: { // 获取支持的生物监测 getingSupport(type) { console.log('appleORan==3') let that = this; // #ifdef H5 that.goingHandPassward(); // #endif // #ifndef H5 uni.checkIsSupportSoterAuthentication({ success(res) { // console.log("获取支持的生物监测成功==>", res.supportMode.indexOf("facial") != -1,that.appleORan == 1); // 如果支持人脸识别,就优先人脸识别,否则就去指纹识别(人脸识别还需要判断是否是ios设备,如果不是,直接指纹。) if (res.supportMode.indexOf("facial") != -1 && type == 1) { console.log('进入人脸识别') that.examineFaceID(); } else if (res.supportMode.indexOf("fingerPrint") != -1) { console.log('进入指纹识别') that.examineFingetprint(); } else { that.goingHandPassward(); } }, fail(err) { console.log("获取支持的生物监测失败==>", err); that.goingHandPassward(); }, }); // #endif }, // 手势密码入口 goingHandPassward() { // 如果保存的有密码那就是解锁模式,如果没有那就是设置模式 if (this.$store.state.userInfo.hand_password == '') { console.log('跳转到设置手势密码') uni.showToast({ title: this.$t('请先设置你的密码'), duration: 500, icon: 'none' }); this.$urouter.redirectTo({ url: '/pages/index/setting/gesturePassword', params: { "type": 2, } }) } else { console.log('跳转到手势密码') // 跳转到手势密码的页面时也到带上当前的页面路径 this.$urouter.redirectTo({ url: '/pages/index/setting/gesturePassword', params: { "type": 1, "currentURL": this.currentURL } }) } }, // 检查是否录入指纹 examineFingetprint() { let that = this; uni.checkIsSoterEnrolledInDevice({ checkAuthMode: "fingerPrint", success(res) { console.log("检查是否录入指纹==>", res); // 如果没有录入指纹就跳转到设备的设置页面(不过应该用不到) if (res.isEnrolled) { that.startFingerprint(); } }, fail(err) { console.log(err); }, }); }, // 检查是否录入faceID examineFaceID() { let that = this; uni.checkIsSoterEnrolledInDevice({ checkAuthMode: "facial", success(res) { console.log("检查是否录入faceID", res); // 检查是否录入人脸 if (res.isEnrolled) { that.startFaceID(); } }, fail(err) { console.log(err); }, }); }, // 开始指纹识别 startFingerprint() { let that = this; uni.startSoterAuthentication({ requestAuthModes: ["fingerPrint"], challenge: this.$t("要携带的参数"), authContent: this.$t("请用指纹解锁"), success(res) { that.$store.commit('setGestureAgain', false); console.log("指纹识别成功==>", res); // 如果识别成功就 uni.showToast({ title: this.$t("识别成功"), duration: 500, }); }, fail(err) { console.log(err); uni.showToast({ title: this.$t('验证失败'), duration: 1000, icon: 'none' }); setTimeout(() => { that.$urouter.navigateBack() }, 1000) }, }); }, // 开始人脸识别 startFaceID() { let that = this; uni.startSoterAuthentication({ requestAuthModes: ["facial"], challenge: this.$t("要携带的参数"), authContent: this.$t("请用FaceID解锁"), success(res) { console.log("人脸识别成功==>", res); that.$store.commit('setGestureAgain', false); // 如果识别成功就 uni.showToast({ title: this.$t("识别成功"), duration: 500, }); }, fail(err) { console.log(err); uni.showToast({ title: this.$t('验证失败'), duration: 1000, icon: 'none' }); setTimeout(() => { that.$urouter.navigateBack() }, 1000) }, }); }, }, };