zoukankan      html  css  js  c++  java
  • uniapp 自定义弹窗与指纹识别

     uniapp 指纹识别加自定义弹窗
    参考自uniapp 插件--指纹模块,感谢!!!
     
      1 <template>
      2     <view class="box">
      3         <button type="primary" @tap="fingerprint()" :disabled="disabled">按下开始识别指纹</button>
      4         <view class="mask" v-show="popup" @tap="cancelbox()">
      5             <view class="content">
      6                 <image :src="zhiwenimg" mode="" class="imagestyle"></image>
      7                 <text class="text">{{zhiwentext}}</text>
      8             </view>
      9         </view>
     10     </view>
     11 </template>
     12 
     13 <script>
     14     export default {
     15         data() {
     16             return {
     17                 result: "",
     18                 disabled: false,
     19                 popup: false,
     20                 zhiwentext: '指纹识别',
     21                 zhiwenimg: require('@/static/images/zhiwen.png')
     22             }
     23         },
     24         onLoad() {
     25             // #ifdef APP-PLUS
     26             if (!plus.fingerprint.isSupport()) {
     27                 this.result = '此设备不支持指纹识别';
     28                 this.disabled = true;
     29             } else if (!plus.fingerprint.isKeyguardSecure()) {
     30                 this.result = '此设备未设置密码锁屏,无法使用指纹识别';
     31                 this.disabled = true;
     32             } else if (!plus.fingerprint.isEnrolledFingerprints()) {
     33                 this.result = '此设备未录入指纹,请到设置中开启';
     34                 this.disabled = true;
     35             } else {
     36                 this.result = '此设备支持指纹识别';
     37                 this.disabled = false;
     38             }
     39             // #endif
     40             // #ifdef MP-WEIXIN
     41             this.disabled = false;
     42             this.result = '请在微信真机中使用,模拟器不支持';
     43             // #endif
     44             // #ifndef APP-PLUS || MP-WEIXIN
     45             this.result = '此平台不支持指纹识别';
     46             // #endif
     47         },
     48         methods: {
     49             // 取消识别
     50             cancelbox: function() {
     51                 this.popup = false;
     52                 plus.fingerprint.cancel();
     53             },
     54 
     55             fingerprint: function() {
     56                 this.popup = true;
     57                 var that = this;
     58                 that.zhiwentext= '指纹识别';
     59                 that.zhiwenimg= require('@/static/images/zhiwen.png');
     60                 // #ifdef APP-PLUS
     61                 plus.fingerprint.authenticate(function(result) {
     62                     console.log(result)
     63                     that.zhiwenimg = require('@/static/images/zhiwen_success.png')
     64                     that.zhiwentext = '指纹识别成功';
     65                     setTimeout(function() {
     66                         that.popup = false
     67                     }, 1500);
     68                 }, function(e) {
     69                     switch (e.code) {
     70                         case e.AUTHENTICATE_MISMATCH:
     71                             plus.nativeUI.toast('指纹匹配失败,请重新输入');
     72                             break;
     73                         case e.AUTHENTICATE_OVERLIMIT:
     74                             plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框
     75                             plus.nativeUI.alert('指纹识别失败次数超出限制,请使用其它方式进行认证');
     76                             break;
     77                         case e.CANCEL:
     78                             plus.nativeUI.toast('已取消识别');
     79                             break;
     80                         default:
     81                             plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框
     82                             plus.nativeUI.alert('指纹识别失败,请重试');
     83                             break;
     84                     }
     85                 });
     86                 // // Android平台手动弹出等待提示框 
     87                 // if ('Android' == plus.os.name) {
     88                 //     plus.nativeUI.showWaiting('指纹识别中...').onclose = function() {
     89                 //         plus.fingerprint.cancel();
     90                 //     }
     91                 // }
     92                 // #endif
     93 
     94                 // #ifdef MP-WEIXIN
     95                 wx.startSoterAuthentication({
     96                     requestAuthModes: ['fingerPrint'],
     97                     challenge: '123456',
     98                     authContent: '请用指纹解锁',
     99                     success(res) {
    100                         uni.showToast({
    101                             title: '识别成功',
    102                             mask: false,
    103                             duration: 1500
    104                         });
    105                     }
    106                 })
    107                 // #endif
    108             },
    109         }
    110     }
    111 </script>
    112 
    113 <style>
    114     .imagestyle {
    115          100rpx;
    116         height: 100rpx;
    117     }
    118 
    119     page {
    120         background: transparent;
    121     }
    122 
    123     .box {
    124         word-break: break-all;
    125     }
    126 
    127     .mask {
    128         position: fixed;
    129         left: 0;
    130         top: 0;
    131         right: 0;
    132         bottom: 0;
    133         /* #ifndef APP-NVUE */
    134         display: flex;
    135         /* #endif */
    136         justify-content: center;
    137         align-items: center;
    138         background-color: rgba(0, 0, 0, 0.4);
    139     }
    140 
    141     .content {
    142          300rpx;
    143         height: 300rpx;
    144         border-radius: 40rpx;
    145         padding: 60rpx 30rpx;
    146         box-sizing: border-box;
    147         background-color: #FFFFFF;
    148         text-align: center;
    149     }
    150 
    151     .text {
    152         /* #ifndef APP-NVUE */
    153         display: block;
    154         /* #endif */
    155         text-align: center;
    156         color: #333333;
    157         line-height: 60rpx;
    158     }
    159 </style>
  • 相关阅读:
    iOS之内存管理(ARC)
    分布式锁1 Java常用技术方案
    谈谈如何使用Netty开发实现高性能的RPC服务器
    前后端分离开发模式下后端质量的保证 —— 单元测试
    jquery实现"跳到底部","回到顶部"效果
    html内容超出了div的宽度如何换行让内容自动换行
    采用easyui+ajax+htm+ashx编写 通过用户对应角色 角色对应菜单 控制用户的访问权限
    javascript [] 与 {} 的区别
    图说设计模式
    T4教程1 T4模版引擎之基础入门
  • 原文地址:https://www.cnblogs.com/dagongren/p/14024910.html
Copyright © 2011-2022 走看看