我已经浏览了以下链接,我的情况与此类似。
Disable hardware back function jquery mobile
情况:正在测试的设备:Samsung S3
页面A:带名称的ListView(A1,A2,A3) 页面B:由表单,提交和取消按钮组成。
用户填写表单并单击“提交”按钮。他的数据上传到服务器。页面已更新,并显示确认对话框,表明数据已上载到服务器。
现在问题到了。
现在,当用户点击硬件返回按钮时,他再次被重定向到页面B,他再次能够提交表格(我们不需要,因为表格只需填写一次)。
有没有什么方法可以控制硬件后退按钮,以便在页面B上显示页面A.
Nirmal的以下答案似乎有答案,但我不知道如何实施 -
没有真正的方法可以禁用硬件后退按钮 黑莓或Android。
您可以做的是维护一个失效的会话变量 在你的后台处理程序中并检查该会话变量 检查页面的pagebeforeshow事件。
有人可以帮助我吗?
答案 0 :(得分:2)
使用cookies。无论何时处理表单,都要向用户的cookie添加值,并在表单页面上检查该cookie值是否存在。如果只是向用户显示一条消息,表明数据已经提交或将用户重定向到主页面。
答案 1 :(得分:1)
您应该能够使用javascript捕获硬件后退按钮点击事件。
$(document).bind('keydown', function(event) {
if (event.keyCode == 27) {
// Prevent default (disable the back button behavior)
event.preventDefault();
// Your code to show another page or whatever...
}
});
答案 2 :(得分:1)
我所做的是在登录后包含登录表单和用户指向的页面,在两页(多页容器)的同一html文件中。验证登录后,我将changePage调用为要加载 changeHash 的新页面的ID为 false 。 这样,即使通过硬件后退按钮,用户也不会返回登录。