收藏
回答

如何捕获返回事件?

主页面跳到子页面,在子页面中有一些输入框和一个保存按键。

功能1:点击保存按键将退回主页面。

功能2:若用户在子页面展示的前提下点击手机的返回按钮,页面将提示"是否保存当前信息"。页面有俩按键"是"和"否",其逻辑分别为一个按键的逻辑是"保存数据并回退到上一个页面",另一个按键的逻辑是"不保存数据,然后回退到上一个页面"。

请问功能2如何实现?

目前我尝试过两个方案:

方案1:在unload函数中调用wx.showModel。这种方式不行,这个函数是一个异步函数,一旦点击退出,子页面先退出,然后才弹出是否保存数据的提示框。虽然在我的要求中,一旦对话框弹出,不论是否保存数据都会退回到主页面,这个方案可以勉强满足我的要求。但是这种"先退出页面,然后询问是否保存"的交互形式给人的感觉很怪异。我希望的交互形式是"先询问,然后退出当前页面返回上一个页面"

方案2:wx.enableAlertBeforeUnload。我用官方给的示例代码试了下,不满足我的要求。我的要求是提示框中俩按键,一个按键的逻辑是"保存数据并回退到上一个页面",另一个按键的逻辑是"不保存数据,然后回退到上一个页面"。wx.enableAlertBeforeUnload这个组件有一个按键没有回退到上一个页面的功能。

回答关注问题邀请回答
收藏

2 个回答

  • 一笑皆春
    一笑皆春
    02-26

    这个需求目前小程序做不到,修改你的交互方式吧,或者只能用wx.enableAlertBeforeUnload

    02-26
    有用 1
    回复
  • hello world
    hello world
    02-26

          自定义导航栏,忽略左滑/手机自带返回

    02-26
    有用
    回复 2
    • L
      L
      02-26
      就是目前小程序没法实现我描述的这个交互?我要改交互是吗?


      把交互改成"左滑/手机自带返回"时不弹出提示框,"左滑/手机自带返回"时不保存数据?
      同时自定义导航栏,直接在导航栏点击事件中处理实现我说的那个交互?


      可是就算我把wx.showModel移动到导航栏左上角的回退按键的点击事件中,因为wx.showModel是一个异步操作,所以最后的效果还是"先退出页面,然后询问是否保存"吧。这和我那个方案一好像有相同的缺点。
      02-26
      回复
    • hello world
      hello world
      02-26回复L
      自定义导航栏,可以控制先弹wx.showModel,自己处理逻辑
      02-26
      回复
登录 后发表内容