使用PIN码锁定PhoneGap Android应用程序
Locking a PhoneGap Android app with a PIN code
我正在使用PhoneGap构建一个应用程序。在以下情况下,我希望它用PIN码锁定自己(它必须是应用程序内锁,与原生Android锁分开):
- 在没有用户输入的情况下经过了一定时间
- 用户导航离开应用程序,例如,如果应用程序被最小化,或者手机被放置一段时间后屏幕关闭
问题:
- 我假设手机超时并关闭屏幕会触发暂停事件,但这真的是怎么回事吗
- 是否可以运行
setInterval()
功能,即使在手机"暂停"时也可以运行,以便与服务器核实推送通知?我只对安卓系统感兴趣,我知道iOS有一些怪癖 - 最后,实现PIN锁定的最佳方法是什么?覆盖当前界面或将应用程序重定向到"锁定页面",同时记住原始页面或其他内容
我没有任何代码示例,但我可以讨论一个理论实现。
我会在应用程序打开时亲自实现锁定屏幕。为了保持一致性,该应用程序是一个基于PIN的应用程序(我知道措辞很糟糕)。因此,每当应用程序第一次打开时,它都应该询问密码。
在实现重定向时,我会使用Back方法向后(DevExtreme有一个默认的Back方法,我不确定phonegap是否有)
尝试访问back方法(如果失败)。继续前进。
使用try/catch来完成此操作,尝试返回,如果出现错误,则认为是错误,因为没有返回的位置。继续主屏幕。
实现onPause方法以在设备暂停后移动到锁定屏幕。
如果你没有默认的返回方法,这里有一个使用伪代码实现方法的模型
为了创建实体模型,我们将劫持导航方法,或者更好的是,我们将重新创建导航方法,但仍然使用现有方法。
define backstring = ""
function NavigateTo(string navigateto)
backstring = currentnavigationscreen
this.Navigate(navigateto)
end
该方法设置背景环的值并导航到下一个屏幕
function GoBack()
NavigateTo(backstring)
end
这就是暂停方法应该看起来像
function onPause()
NavigateTo("lockscreen")
end
我当然希望这会有所帮助。
您还可以创建一个CanBack()方法,而不是在后面执行try-and-catch函数。
function CanBack()
return (backstring.length > 0)
end
报价
根据应用程序的屏幕流,您可能还需要禁用后退按钮功能,防止用户"逃离"您的锁定模式Garcia Hurtado
这是一个很好的观点,但是,如果你坚持使用我给出的伪代码,并且不将其连接到后退按钮机制,你就可以了。只要确保当您导航到密码屏幕时,您将其视为根。
您也可以创建一个覆盖,并简单地维护一个布尔值来决定是否显示它。默认值可能为true,因此每次打开应用程序时都必须输入密码。您可以使用onpause函数将布尔值设置为false,以通知应用程序需要再次锁定。
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,同时禁用后退按钮就足够了。这样你就不会在重定向时陷入页面。
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 在cordova android应用程序中连接数据库
- 使用javascript将视频从我的android应用程序上传到youtube
- 我需要学习Java才能使用phoneGap创建android应用程序吗
- javascript onclick不适用于android应用程序
- 带有Apache Cordova的Android应用程序
- Phonegap 3.2.0 android应用程序后退按钮剪切仅适用于某些页面
- 如何在android应用程序中下载图像
- 从网页打开android应用程序
- 点击按钮在手机中加载现有的Android应用程序
- Android应用程序在接收intent捆绑包时崩溃
- 读取phonegap android应用程序中的本地文件
- 如何使我的phonegap android应用程序崩溃
- Pebble Watchface向Android应用程序发送消息
- 让Laravel应用程序同时服务于基于浏览器的应用程序,并充当iPhone和Android应用程序的API的最佳实践是什
- 适用于 Android 应用程序的 Java 代码中的实例化异常
- 为什么我在尝试使用 StageWebView 在 AIR Android 应用程序中实现 Google Maps Jav
- 单击从Android应用程序到HTML页面的单选按钮
- 运行代码以在Android应用程序中单击javascript按钮?尝试在页面上抓取回复按钮联系信息 craigslist
- 如何在 AIR Android 应用程序中在 JS 和 AS3 之间进行通信