JSAPI

  • Since 9.1

    pause

    当一个webview界面不可见时(被压入后台、锁屏、pushwindow到下个页面),会触发此事件.

    备注:10.0.15客户端以上,容器新增了pagePause和appPause事件,用于业务区分是哪种情况触发的pause。

    pause=appPause(客户端压后台不可见,或因推入新的app实例导致旧app被遮挡)+pagePause(窗口压栈底不可见)

    注意: 由于Android原生的resume和pause事件不能区分是压后台导致还是页面切换导致,所以pageResume和pagePause事件是通过jsapi调用记录去回调的,所以仅适用于同一个session内window之间的互相切换。对于startApp和其他客户端直接切换页面方式(比如chooseImage)不生效。

    使用方法

    document.addEventListener('pause', function(e) {
      alert("pause");
    }, false);
    

    代码演示

    离开当前页面后弹出alert

    <h1>请点击按钮打开一个新窗口</h1>
    <a href="javascript:void(0)" class="btn J_new_window">新窗口打开当前页面</a>
    <script>
    function ready(callback) {
      // 如果jsbridge已经注入则直接调用
      if (window.AlipayJSBridge) {
        callback && callback();
      } else {
        // 如果没有注入则监听注入的事件
        document.addEventListener('AlipayJSBridgeReady', callback, false);
      }
    }
    ready(function() {
      document.querySelector('.J_new_window').addEventListener('click', function() {
        AlipayJSBridge.call('pushWindow', {
          url: location.pathname,
        });
      });
    
      document.addEventListener('pause', function(e) {
        alert('paused');
      }, false);
    });
    </script>