7

我已经浏览了以下链接,我的情况也一样。

使用 jQuery Mobile 禁用硬件返回功能

情况:被测设备:三星 Galaxy S III

页面 A:具有名称(A1、A2、A3)的 ListView
页面 B:由FormSubmitCancel按钮组成。

用户填写表格并单击提交按钮。他/她的数据被上传到服务器。页面将更新,并显示确认对话框,表明数据已上传到服务器。

现在问题来了。

现在,当用户单击硬件返回按钮时,他/她再次被重定向到页面 B,并且他/她再次能够提交表单(我们不需要,因为表单只填写一次)。

那么有没有一种方法可以控制硬件后退按钮在页面 B 上时显示页面 A?

Nirmal的以下答案似乎有答案,但我不知道如何实现它-

没有真正的方法禁用黑莓或 Android 上的硬件后退按钮。

您可以做的是维护一个会话变量,该变量在您的后台处理程序中无效,并在考试页面的 pagebeforeshow 事件中检查该会话变量。

我怎样才能解决这个问题?

4

3 回答 3

2

使用 cookie。每当处理表单时,向用户的 cookie 添加一个值,并在表单页面上检查该 cookie 值是否存在。

如果是这样,只需向用户显示一条消息,表明数据已经提交或将用户重定向到主页。

于 2012-10-12T13:21:50.190 回答
2

您应该能够使用 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...
  }
});
于 2012-10-12T13:35:44.240 回答
1

我在与两个页面(多页面容器)相同的 HTML 文件中包含了登录表单和用户在登录后被引导的页面。

验证登录后,我将 changePage 称为要加载的新页面的 id,其中changeHashfalse。这样,即使通过硬件后退按钮,用户也不会返回登录。

于 2013-04-30T13:53:50.857 回答