全部产品

页面压后台

更新时间:2019-09-12 17:15:22

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

注意

  • 对于 10.0.15 以上版本的客户端,容器新增了 pagePauseappPause 事件,用于业务区分是哪种情况触发 pause
  • 页面压后台(pause)= 客户端压后台不可见(appPause)+ 窗口压栈底不可见(pagePause)。
  • 由于 Android 系统无法区分原生的 resume 和 pause 事件是由于压后台导致的还是由于页面切换导致的,所以 pageResumepagePause 事件是通过 JSAPI 调用记录去回调的,所以仅适用于同一个 session 内 window 之间的互相切换。对于 startApp 和其他客户端直接切换页面方式不生效,例如 chooseImage

pause 接口使用方法

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

代码示例

以下示例为离开当前页面后弹出警告:

  1. <h1>请点击按钮打开一个新窗口</h1>
  2. <a href="javascript:void(0)" class="btn J_new_window">新窗口打开当前页面</a>
  3. <script>
  4. function ready(callback) {
  5. // 如果 jsbridge 已经注入则直接调用
  6. if (window.AlipayJSBridge) {
  7. callback && callback();
  8. } else {
  9. // 如果没有注入则监听注入的事件
  10. document.addEventListener('AlipayJSBridgeReady', callback, false);
  11. }
  12. }
  13. ready(function() {
  14. document.querySelector('.J_new_window').addEventListener('click', function() {
  15. AlipayJSBridge.call('pushWindow', {
  16. url: location.pathname,
  17. });
  18. });
  19. document.addEventListener('pause', function(e) {
  20. alert('paused');
  21. }, false);
  22. });
  23. </script>