gesturePassword

来自于:开发者立即使用

概述

gesturePassword 模块提供一个矩阵锁,可以加锁屏幕,用户通过输入之前自己设置好的矩阵路线来解锁,手势密码可以保存到本地,可以从远程获取并且进行输入匹配,本模块的矩阵呈正方形,可以设置任意行数(列数与行数一致),模块中主要三个部分为:1.设置密码界面;2.验证密码界面;3.任意绘制密码界面。

在移动应用中由于屏幕大小的问题,有些时候如果使用键盘,会对体验有所影响,在这个时候我们就可以使用矩阵手势密码来替代文本框输入。

模块效果图:

Image text

open

打开模块,此模块为任意绘制,开发时按照需求进行调用,本接口只返回用户输入的密码

open({params} , callback(ret, err))

params

rect:

  • 类型: JSON 对象
  • 默认值:见内部字段
  • 描述:模块的位置及尺寸
  • 内部字段:

        {
            x: 0,   //(必须)数字类型;模块左上角的 x 坐标
               y: 0,   //(必须)数字类型;模块左上角的 y 坐标
            w: 400, //(必须)数字类型;模块的宽度
        }

bgColor:

  • 类型: 字符串类型
  • 默认值:无
  • 描述: (必须项)模块背景颜色,支持十六进制颜色系,如:#FFFFFF

color:

  • 类型: 字符串类型
  • 默认值:无
  • 描述: (必须项)元素触摸下的颜色,支持十六进制颜色系,如:#FFFFFF

unTouchColor:

  • 类型: 字符串类型
  • 默认值:无
  • 描述: (必须项)元素常态下的颜色,支持十六进制颜色系,如:#FFFFFF

pointDistance:

  • 类型: 数字
  • 默认值:20
  • 描述: 每个触点元素之间的间隔

columns:

  • 类型: 数字
  • 默认值:3
  • 描述: 每行(列)显示几个触摸圈元素

fixedOn:

  • 类型: 字符串类型
  • 默认值:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 描述: 模块依附于当前 window

fixed:

  • 类型: 布尔
  • 默认值:true
  • 描述: 是否将模块视图固定到窗口上,不跟随窗口上下滚动,可为空

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:

        {
            result:'ok'   //描述执行结果,ok表示执行成功
        }

err:

  • 类型:JSON对象
  • 内部字段:

        {
            msg:''       //错误信息描述
        }

示例代码

          var module = api.require('gesturePassword');
          module.open({
              rect: {
                    x: 30,
                    y: 290,
                    w: 200
            }, 
            color:"#0000ff",
            bgColor:"#ffffff",
            unTouchColor:"#cccccc",
            pointDistance:30,
            columns:4,
            fixedOn:api.frameName,
            fixed:false
        },
        function(ret,err)
          {
            if (err){
                alert(JSON.stringify(err));
            }
            else{
                alert(JSON.stringify(ret));
            }
          });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

openSetPassword

openSetPassword({params}, callback(ret, err))

打开设置密码界面,根据要求进行相应提示。

params

rect:

  • 类型: JSON 对象
  • 默认值:见内部字段
  • 描述:模块的位置及尺寸
  • 内部字段:

        {
            x: 0,   //(必须)数字类型;模块左上角的 x 坐标
               y: 0,   //(必须)数字类型;模块左上角的 y 坐标
            w: 400, //(必须)数字类型;模块的宽度
        }

bgColor:

  • 类型: 字符串类型
  • 默认值:无
  • 描述: (必须项)模块背景颜色,支持十六进制颜色系,如:#FFFFFF

color:

  • 类型: 字符串类型
  • 默认值:无
  • 描述: (必须项)元素触摸下的颜色,支持十六进制颜色系,如:#FFFFFF

unTouchColor:

  • 类型: 字符串类型
  • 默认值:无
  • 描述: (必须项)元素常态下的颜色,支持十六进制颜色系,如:#FFFFFF

saveInLocal:

  • 类型: 数字
  • 默认值:false
  • 描述: 是否本机存储密码

pointDistance:

  • 类型: 数字
  • 默认值:20
  • 描述: 每个触点元素之间的间隔

columns:

  • 类型: 数字
  • 默认值:3
  • 描述: 每行(列)显示几个触摸圈元素

minLength:

  • 类型: 数字
  • 默认值:3
  • 描述: 密码组成的元素最小数量

fixedOn:

  • 类型: 字符串类型
  • 默认值:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 描述: 模块依附于当前 window

fixed:

  • 类型: 布尔
  • 默认值:true
  • 描述: 是否将模块视图固定到窗口上,不跟随窗口上下滚动,可为空

callback(ret, err)

ret:

  • 类型:JSON对象数组
  • 内部字段:

        {
            result:'ok'   //描述执行结果,ok表示执行成功,首次打开会返回
        }

            或者
        {
            state:'',       //数字类型,返回值有(1,2,3,4)四种
                           //1:第一次设置密码 
                           //2:第二次设置密码,并且和第一次一致(成功设置密码,并且根据参数saveInLocal会自动加密保存在本地) 
                           //3:第二次设置密码,但是和第一次不一致 
                           //4:密码长度不够

            password:''    //字符串类型,设置的密码
        },
        ...

err:

  • 类型:JSON对象
  • 内部字段:

        {
            msg:''       //错误信息描述
        }

示例代码

          var module = api.require('gesturePassword');
          module.openSetPassword({
              rect: {
                    x: 30,
                    y: 290,
                    w: 200
            }, 
            color: "#0000ff",
            bgColor: "#ffffff",
            unTouchColor: "#cccccc",
            saveInLocal:true,
            pointDistance:30,
            columns:4,
            minLength:4,
            fixedOn: api.frameName,
            fixed: false
        },
        function(ret,err)
          {
            if (err){
                alert(JSON.stringify(err));
            }
            else {
                if (ret.state == 1) {
                    api.toast({
                        msg:"请再一次绘制密码"
                    });
                    module.clear();
                }
                else if (ret.state == 2) {
                    api.toast({
                        msg:"密码设置成功"
                    });
                    module.setTempColor({
                        color: "#00aa00",
                    });
                }
                else if (ret.state == 3) {
                    api.toast({
                        msg:"密码和第一次不一致,请重新设置"
                    });
                    module.setTempColor({
                        color: "#ff0000",
                    });
                }
                else if (ret.state == 4) {
                    api.toast({
                        msg:"密码长度不足"
                    });
                    module.setTempColor({
                        color: "#ff0000",
                    });
                }
                else {
                    alert(JSON.stringify(ret));
                }
            }
          });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

openCheckPassword

openCheckPassword({params}, callback(ret, err))

验证密码,可以验证之前保存在本地密码,也可以验证指定密码。

params

rect:

  • 类型: JSON 对象
  • 默认值:见内部字段
  • 描述:模块的位置及尺寸
  • 内部字段:

        {
            x: 0,   //(必须)数字类型;模块左上角的 x 坐标
               y: 0,   //(必须)数字类型;模块左上角的 y 坐标
            w: 400, //(必须)数字类型;模块的宽度
        }

bgColor:

  • 类型: 字符串类型
  • 默认值:无
  • 描述: (必须项)模块背景颜色,支持十六进制颜色系,如:#FFFFFF

color:

  • 类型: 字符串类型
  • 默认值:无
  • 描述: (必须项)元素触摸下的颜色,支持十六进制颜色系,如:#FFFFFF

unTouchColor:

  • 类型: 字符串类型
  • 默认值:无
  • 描述: (必须项)元素常态下的颜色,支持十六进制颜色系,如:#FFFFFF

pointDistance:

  • 类型: 数字
  • 默认值:20
  • 描述: 每个触点元素之间的间隔

columns:

  • 类型: 数字
  • 默认值:3
  • 描述: 每行(列)显示几个触摸圈元素

mode:

  • 类型: 数字
  • 默认值:1
  • 描述:1表示和本机保存的密码进行匹对,2表示和指定的密码匹对

comparePassword:

  • 类型: 字符串
  • 默认值:无
  • 描述: 指定匹对的密码

fixedOn:

  • 类型: 字符串类型
  • 默认值:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 描述: 模块依附于当前 window

fixed:

  • 类型: 布尔
  • 默认值:true
  • 描述: 是否将模块视图固定到窗口上,不跟随窗口上下滚动,可为空

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
        {
            result:'ok|success|fail'   //描述执行结果,ok表示模块打开成功,success表示密码验证成功,fail表示密码验证失败
        }

err:

  • 类型:JSON对象
  • 内部字段:

        {
            msg:''       //错误信息描述(mode=1的情况下,如果没有设置密码,错误信息也在此展示)
        }

示例代码

          var module = api.require('gesturePassword');
          module.openCheckPassword({
              rect: {
                    x: 30,
                    y: 290,
                    w: 200
            }, 
            color: "#0000ff",
            bgColor: "#ffffff",
            unTouchColor: "#cccccc",
            pointDistance:30,
            columns:4,
            mode:2,
            comparePassword:"1,2,3,5",
            fixedOn: api.frameName,
            fixed: false
        },
        function(ret,err)
          {
            if (err){
                alert(JSON.stringify(err));
            }
            else{
                alert(JSON.stringify(ret));
            }
          });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

close

close(callback(ret, err))

关闭模块,并且释放。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:

        {
            result:'ok'   //描述执行结果,success表示执行成功
        }

err:

  • 类型:JSON对象
  • 内部字段:

        {
            msg:''       //错误信息描述
        }

示例代码

          var module = api.require('gesturePassword');
          module.close(function(ret,err)
          {
            if (err){
                alert(JSON.stringify(err));
            }
            else{
                alert(JSON.stringify(ret));
            }
          });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setTempColor

setTempColor({params}, callback(ret, err))

设置当前输入密码的所有元素的颜色。

params

color:

  • 类型: 字符串类型
  • 默认值:无
  • 描述: (必须项)元素以及指引线颜色,支持十六进制颜色系,如:#FFFFFF

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:

        {
            result:'ok'   //描述执行结果,success表示执行成功
        }

err:

  • 类型:JSON对象
  • 内部字段:

        {
            msg:''       //错误信息描述
        }

示例代码

          var module = api.require('gesturePassword');
          module.setTempColor({
            color: "#ff0000",
        },function(ret,err)
          {
            if (err){
                alert(JSON.stringify(err));
            }
            else{
                alert(JSON.stringify(ret));
            }
          });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

isSettedPassword

isSettedPassword(callback(ret, err))

本机是否已经设置了密码。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:

        {
            result:'true|false'   //描述执行结果,true表示本地已存储,false表示本地未存储
        }

err:

  • 类型:JSON对象
  • 内部字段:

        {
            msg:''       //错误信息描述
        }

示例代码

          var module = api.require('gesturePassword');
          module.isSettedPassword(function(ret,err)
          {
            if (err){
                alert(JSON.stringify(err));
            }
            else{
                alert(JSON.stringify(ret));
            }
          });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

clearLocalPwd

clearLocalPwd(callback(ret, err))

清空本地存储的密码。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:

        {
            result:'ok'   //描述执行结果,ok表示执行成功
        }

err:

  • 类型:JSON对象
  • 内部字段:

        {
            msg:''       //错误信息描述
        }

示例代码

          var module = api.require('gesturePassword');
          module.clearLocalPwd(function(ret,err)
          {
            if (err){
                alert(JSON.stringify(err));
            }
            else{
                alert(JSON.stringify(ret));
            }
          });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本