博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手势密码,纯JavaScript实现,支持iOS和Android
阅读量:4085 次
发布时间:2019-05-25

本文共 2821 字,大约阅读时间需要 9 分钟。

react-native-gesture-password

一个React Native的手势密码组件,纯JavaScript实现,因此同时支持iOS和安卓平台。

安装

npm install react-native-gesture-password --save

属性

所有属性都是可选的。

MESSAGE (STRING)

上方显示的文本内容。

STATUS (STRING)

状态值可以是'normal', 'right' 或者 'wrong'。

密码结果的验证需要手动实现,然后通过设置不同的状态值来表示结果是否正确。

STYLE (STRING)

整个组件的样式,可以通过style来设置默认的背景颜色。

RIGHTCOLOR (STRING)

当status !== 'wrong'时的显示颜色。

WRONGCOLOR (STRING)

当status === 'wrong'时的显示颜色。

INTERVAL (NUMBER)

如果设置了一个大于0的值,那么将在这个时间之后自动重置(单位为毫秒)。

ONSTART (FUNCTION)

当点击一个数字键时触发该事件。

ONEND (FUNCTION)

当松开手指时触发该事件,并以最终的密码作为参数传入。

CHILDREN

可以加入其它子组件(例如你想在上面显示一个头像)。

Examples

var React = require('react-native');var {    AppRegistry,    } = React;var PasswordGesture = require('react-native-gesture-password');var Password1 = '';var AppDemo = React.createClass({    // Example for check password    onEnd: function(password) {        if (password == '123') {            this.setState({                status: 'right',                message: 'Password is right, success.'            });            // your codes to close this view        } else {            this.setState({                status: 'wrong',                message: 'Password is wrong, try again.'            });        }    },    onStart: function() {        this.setState({            status: 'normal',            message: 'Please input your password.'        });    },    // Example for set password    /*    onEnd: function(password) {        if ( Password1 === '' ) {            // The first password            Password1 = password;            this.setState({                status: 'normal',                message: 'Please input your password secondly.'            });        } else {            // The second password            if ( password === Password1 ) {                this.setState({                    status: 'right',                    message: 'Your password is set to ' + password                });                Password1 = '';                // your codes to close this view            } else {                this.setState({                    status: 'wrong',                    message:  'Not the same, try again.'                });            }        }    },    onStart: function() {        if ( Password1 === '') {            this.setState({                message: 'Please input your password.'            });        } else {            this.setState({                message: 'Please input your password secondly.'            });        }    },    */    getInitialState: function() {        return {            message: 'Please input your password.',            status: 'normal'        }    },    render: function() {        return (            
this.onStart()} onEnd={(password) => this.onEnd(password)} /> ); }});AppRegistry.registerComponent('AppDemo', () => AppDemo);

转载地址:http://pyeni.baihongyu.com/

你可能感兴趣的文章
前端如何搭建一个成熟的脚手架
查看>>
Flutter ListView如何添加HeaderView和FooterView
查看>>
Flutter key
查看>>
Flutter 组件通信(父子、兄弟)
查看>>
Flutter Animation动画
查看>>
Flutter 全局监听路由堆栈变化
查看>>
Android 混合Flutter之产物集成方式
查看>>
Flutter混合开发二-FlutterBoost使用介绍
查看>>
Flutter 混合开发框架模式探索
查看>>
Flutter 核心原理与混合开发模式
查看>>
Flutter Boost的router管理
查看>>
Android Flutter混合编译
查看>>
微信小程序 Audio API
查看>>
[React Native]react-native-scrollable-tab-view(进阶篇)
查看>>
Vue全家桶+Mint-Ui打造高仿QQMusic,搭配详细说明
查看>>
React Native for Android 发布独立的安装包
查看>>
React Native应用部署/热更新-CodePush最新集成总结(新)
查看>>
react-native-wechat
查看>>
基于云信的react-native聊天系统
查看>>
网易云音乐移动客户端Vue.js
查看>>