Smobiler上海石磨_.NET移动开发平台
标题:
如何调用 Client.Pattern.VerifyLocal 实现手势验证
[打印本页]
作者:
bigjimmy8257
时间:
2019-5-6 13:57
标题:
如何调用 Client.Pattern.VerifyLocal 实现手势验证
求助:
我看到社区中有一篇16年发布的文章, 关于使用手势功能的
https://www.smobiler.com/forum.p ... ghlight=VerifyLocal
我查到现在(4.7)中,Smobiler.Core.API的功能已经转移到Smobiler.Core.RPC 中,而我不知道如何来转换
Client.Pattern.VerifyLocal((object s,Smobiler.Core.API.PatternLocalVerifiedEventArgs args)=>
成新的方式。
我看到VerifyLocal的参数是Smobiler.Core.RPC.PatternLocalVerifiedEventHandler,
但是代码
Client.Pattern.VerifyLocal((object s, Smobiler.Core.RPC.PatternLocalVerifiedEventArgs args =>
总是报错。
以下是我认为的代码:
this.Client.Pattern.VerifyLocal((Object s, Smobiler.Core.RPC.PatternLocalVerifiedEventArgs args =>
{
if(args.isError == false)
{
frmMain _form = new frmMain();
this.Show(_form);
}
});
请指正。
谢谢
大杰米
作者:
Lula.Jin
时间:
2019-5-6 14:40
参考
https://github.com/comsmobiler/S ... nents/demoClient.cs
作者:
bigjimmy8257
时间:
2019-5-6 23:52
Lula,感谢!!里面还有好多其他Client的示例!!学习了。
不过还想继续请教,我理解手势密码(Client.Pattern.Password)应该是保存在客户端得的,但是为什么我的APP每次设置手势成功了,
也设置了this.Client.Pattern.Password 了,但是下次APP进入的时候,this.Client.Pattern.Password 又为null 了。感觉是APP一退出,数据就丢失了。这个符合VerifyLocal 的设定吗?
下面是代码示例,请审查。
private void frmMainpage_Load(object sender, EventArgs e)
{
string Pass = this.Client.Pattern.Password; //做断点调试
if(! string.IsNullOrEmpty(this.Client.Pattern.Password))
{
this.Client.Pattern.VerifyLocal((obj, args) =>
{
if (args.isError == false)
Proceed();
else
{
MessageBox.Show("密码输入错误.", MessageBoxButtons.OK, ((sender1, e1) =>
{
this.Client.ExitAndQuit("退出");
}));
}
});
}
else
{
this.Client.Pattern.Create((obj, args) =>
{
if (args.isError == true)
Toast(args.error);
else
{
this.Client.Pattern.Password = args.Password;
Proceed();
}
});
}
}
作者:
Lula.Jin
时间:
2019-5-7 10:27
this.Client.Pattern.Password 保存在服务端内存中,重启服务端就会没有的
具体开发的时候需要你自己来保存这个手势
比如创建手势后,需要把手势保存在数据库里,用户手势验证的时候,要先在数据库里判断是不是有,有的话给this.Client.Pattern.Password赋值,再执行验证,我们不提供手势保存的
作者:
bigjimmy8257
时间:
2019-5-7 12:16
好的,知道了,我继续来试试。 多谢多谢。
作者:
bigjimmy8257
时间:
2019-5-10 21:31
Lula,
我现在已经可以用你说的方式来进行手势验证了,多谢。不过有个新的问题,如果手势验证四次不成功的话,默认的动作是重置应用。我想实现的是,如果手势验证不成功,会转到密码认证继续进行,因为在这个界面上有重置密码的功能。
我的代码示意如下:
this.Client.Pattern.VerifyLocal((obj, args2) =>
{
if (args2.isError == false)
{
if (userValidate(false)) //手势验证成功
{
frm_Main mainPage = new frm_Main();
this.Show(mainPage);
}
}
else //手势不成功 , 但是这部分似乎无法触发。
{
frm_Logon Page = new frm_Logon();
this.Show(mainPage);
}
}
上例中,else 的部分一直无法触发,不知道它的触发条件是什么?
麻烦你再给解释一下?
谢谢
大杰米
欢迎光临 Smobiler上海石磨_.NET移动开发平台 (https://www.smobiler.cn/)
Powered by Discuz! X3.2