JSAPI

Since 8.1

back

用户点击导航栏左上角返回按钮或者Android的物理返回键,页面将会收到此事件。
如果在事件的处理函数中调用了event.preventDefault(),容器将忽略backBehaviour,js需要负责回退或做其他操作

注意:iOS端侧滑返回,由于手势操作具有可中途撤销的特性,无法触发back事件。

备注:容器内部有保护机制,如果用户多次重复点击返回按钮依然未能退出当前页,将会触发强制退出,忽略preventDefault。

使用方法

// 首先屏蔽默认行为,然后调用页面跳转API进行手动控制
document.addEventListener('back', function(e) {
  e.preventDefault();
  console.log('do something...')
  AlipayJSBridge.call('popWindow');
}, false);

代码演示

点击回退跳转到指定页面

<h1>请点击左上角返回按钮</h1>
<p>点击后会跳回到淘宝页面</p>
<script>
// 注意:如果自定义了back,并使用了location.href去跳到指定的地址,需要包装一个setTimeout以保证不会阻塞客户端线程。
document.addEventListener('back', function(e) {
  e.preventDefault();
  setTimeout(function() {
    location.href = "https://m.taobao.com"
  }, 10);
}, false);
</script>

点击回退跳出确认框

<h1>请点击左上角返回按钮</h1>
<script>
document.addEventListener('back', function(e) {
  e.preventDefault();

  AlipayJSBridge.call('confirm', {
    title: '亲',
    message: '确定要退出吗',
    okButton: '确定',
    cancelButton: '算了'
  }, function(e) {
    if (e.ok) {
      AlipayJSBridge.call('popWindow');
    }
  });
}, false);
</script>