【问题标题】:Take control of the hardware back button using jQuery Mobile使用 jQuery Mobile 控制硬件后退按钮
【发布时间】:2012-10-12 13:06:44
【问题描述】:

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

Disable the hardware back function with jQuery Mobile

情况:被测设备:Samsung Galaxy S III

页面 A:带有名称的列表视图(A1、A2、A3)
页面 B:由 FormSubmitCancel 按钮组成。

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

现在问题来了。

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

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

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

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

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

我该如何解决这个问题?

【问题讨论】:

标签: jquery-mobile


【解决方案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...
  }
});

【讨论】:

  • 我正在开发三星 Galaxy S3 手机,我想这是键盘
  • 我用三星GT-S5570(不带键盘)测试过,可以用。
  • 嗨,我还是有问题,你能告诉我我应该把这段代码放在我的代码中的什么地方吗?
  • 在加载 jQueryMobile javascript 文件之前执行此操作。事件应该绑定到document,以便它捕获keydown的所有事件(并且硬件返回按钮应该产生这个事件)。
  • 但它适用于带有 bac 按钮的黑莓,而不适用于我的三星 Galaxy Ace S5830i。无论如何感谢您的帮助。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      相关资源
      最近更新 更多