Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用PIN码锁定PhoneGap Android应用程序_Javascript_Android_Jquery_Cordova_Privacy - Fatal编程技术网

Javascript 使用PIN码锁定PhoneGap Android应用程序

Javascript 使用PIN码锁定PhoneGap Android应用程序,javascript,android,jquery,cordova,privacy,Javascript,Android,Jquery,Cordova,Privacy,我正在使用它来构建一个应用程序。我希望它在以下情况下使用PIN码(它必须是应用程序内锁,与本机安卓锁分开)锁定自身: 在没有用户输入的情况下,经过了一定的时间 用户导航离开应用程序,例如,如果应用程序被最小化,或者如果手机在屏幕关闭的情况下放置一段时间 问题: 我假设手机超时并关闭屏幕会触发,但它真的是这样工作的吗 是否可以在手机“暂停”时运行setInterval()功能,以便与服务器确认推送?我只对Android感兴趣,我知道iOS有一些怪癖 最后,实现PIN锁的最佳方式是什么?覆盖当

我正在使用它来构建一个应用程序。我希望它在以下情况下使用PIN码(它必须是应用程序内锁,与本机安卓锁分开)锁定自身:

  • 在没有用户输入的情况下,经过了一定的时间
  • 用户导航离开应用程序,例如,如果应用程序被最小化,或者如果手机在屏幕关闭的情况下放置一段时间
问题:

  • 我假设手机超时并关闭屏幕会触发,但它真的是这样工作的吗
  • 是否可以在手机“暂停”时运行
    setInterval()
    功能,以便与服务器确认推送?我只对Android感兴趣,我知道iOS有一些怪癖
  • 最后,实现PIN锁的最佳方式是什么?覆盖当前界面或将应用重定向到“锁定页面”,同时记住原始页面或其他内容
1)每当屏幕关闭或应用程序最小化时,都会触发暂停事件。您可以使用暂停事件在屏幕上创建锁定。在这种情况下,您可能还需要禁用bwck按钮,以便在显示锁定屏幕时用户不会导航到上一页

2) 可以在暂停事件上运行setinterval功能,以便在手机暂停时与服务器进行通信。 下面是一些代码:

document.addEventListener("pause", onPause, false);
function onPause() { // Handle the pause event
setInterval( function() {
    Ext.data.JsonP.request({
            url: 'http://convert4mobile.net/backend/API/qr/push.php',
            callbackKey: 'callback',
            success: function(data)
            {

                if(data.success == true)
                {
                    if (typeof plugins !== "undefined") {
              window.plugins.localNotification.add({
                        date : new Date(),
                        message : data.time+"\r\n"+data.msg,
                        ticker : "A new code was generated",
                        repeatDaily : false,
                        id : 4
                });
                }
                }
            }
           });
} , 2000);
}

3) 如果它只是一个屏幕,不输入正确的pin就不能让用户与应用程序交互,那么它应该是一个覆盖。您也可以使用saperate屏幕,但使用带有消息的模式覆盖,在禁用后退按钮的同时输入pin就足够了。因此,在重定向时,您不会陷入页面中。

我没有任何代码示例,但我可以讨论一个理论实现

我会在应用程序打开时亲自实现锁定屏幕。为了保持应用程序是基于PIN的应用程序的一致性(我知道措辞很糟糕)。因此,当应用程序首次打开时,它应该询问pin码

在实现重定向时,我会使用Back方法向后退(DevExtreme有一个默认的Back方法,我不确定phonegap是否有)

尝试访问back方法(如果失败)。继续前进

使用try/catch实现这一点,尝试返回,如果它出错,则假定它出错,因为没有返回的位置。进入主屏幕

执行onPause方法,在设备暂停后移动到锁定屏幕

如果您没有默认的back方法,这里有一个使用伪代码实现的模型

为了创建模型,我们将劫持导航方法,或者更好的是,我们将重新创建导航方法,但仍然使用现有的方法

define backstring = ""

function NavigateTo(string navigateto)
    backstring = currentnavigationscreen
    this.Navigate(navigateto)
end
此方法设置backstring的值并导航到下一个屏幕

function GoBack()
    NavigateTo(backstring)
end
这就是onpause方法的外观

function onPause()
    NavigateTo("lockscreen")
end
我当然希望这会有所帮助

除了在back函数上执行try-and-catch外,还可以创建一个CanBack()方法

引述


根据应用程序的屏幕流量,您可能还需要禁用 后退按钮功能可防止用户“逃离”您的 锁定模式–加西亚·胡塔多

这是一个很好的观点,但是如果您坚持使用我给出的伪代码,并且不将其连接到back button机制,您将很好。只要确保在导航到密码屏幕时,将其视为根用户


您还可以创建一个覆盖,只需维护一个决定是否显示它的布尔值。默认值可能为true,因此每次打开应用程序时,您都必须输入密码。您可以使用onpause函数将布尔值设置为false,以通知应用程序需要再次锁定。

1。是的,或者他们回来的时候。2.是,取决于应用程序的启动模式。3.使用模式对话框。根据应用程序的屏幕流程,您可能还需要禁用“后退”按钮功能,以防止用户“逃离”您的锁定模式。我最近使用DevXPress开发了一个应用程序,遇到了相同的问题,因此我已经整理了大部分详细信息。请随时询问您在实施过程中是否需要任何帮助。嗨,科迪。我需要通过PIN锁定我的应用程序。应用程序在sencha touch中。如果你能帮助我,那就太好了。请指导我从哪里开始实现它?我只是想知道锁屏是否只是一个html5覆盖层,这是否意味着如果设备是根设备并从源代码中提取的,它可以很容易地删除,或者如果它是用本机Java编写的,它会不会没有区别?
function CanBack()
    return (backstring.length > 0)
end