JSAPI

  • Since 8.2

    exitApp

    exitApp用于退出当前栈顶app

    使用方法

    AlipayJSBridge.call('exitApp');
    

    代码演示

    退出当前的页面

    <h1>点击退出当前页面</h1>
    <a href="#" class="btn J_demo">执行</a>
    <script>
    function ready(callback) {
      // 如果jsbridge已经注入则直接调用
      if (window.AlipayJSBridge) {
        callback && callback();
      } else {
        // 如果没有注入则监听注入的事件
        document.addEventListener('AlipayJSBridgeReady', callback, false);
      }
    }
    ready(function() {
      document.querySelector('.J_demo').addEventListener('click', function() {
        AlipayJSBridge.call('exitApp');
      });
    });
    </script>
    

    页面跳转完整实例

    <h1>请点击下面按钮来进行页面间跳转</h1>
    <h3></h3>
    <a href="javascript:void(0)" class="btn new">新开当前页面</a>
    <a href="javascript:void(0)" class="btn back">返回一级</a>
    <a href="javascript:void(0)" class="btn popTo">通过popTo退2级</a>
    <a href="javascript:void(0)" class="btn exit">关闭所有页面</a>
    
    <script>
    var query = getQuery();
    var depth = (+query.depth) || 0;
    
    document.querySelector('h3').innerHTML = '当前页面深度: ' + depth;
    
    function ready(callback) {
      // 如果jsbridge已经注入则直接调用
      if (window.AlipayJSBridge) {
        callback && callback();
      } else {
        // 如果没有注入则监听注入的事件
        document.addEventListener('AlipayJSBridgeReady', callback, false);
      }
    }
    ready(function() {
      document.querySelector('.new').addEventListener('click', function() {
        AlipayJSBridge.call('pushWindow', {
          url: location.pathname + '?depth=' + (1+depth),
        });
      });
    
      document.querySelector('.back').addEventListener('click', function() {
        AlipayJSBridge.call('popWindow', {
          data: {
            method: 'popWindow',
            depth: depth,
          }
        });
      });
    
      document.querySelector('.popTo').addEventListener('click', function() {
        AlipayJSBridge.call('popTo', {
          index: -2,
          data: {
            method: 'popTo',
            depth: depth,
          }
        }, function(e) {
          if (e.error) {
            alert('发生错误: ' + JSON.stringify(e));
          }
        });
      });
    
      document.querySelector('.exit').addEventListener('click', function() {
        AlipayJSBridge.call('exitApp');
      });
    });
    
    document.addEventListener('resume', function(event) {
      alert('页面回退时带过来的内容: ' + JSON.stringify(event.data));
    });
    </script>
    

    API

    AlipayJSBridge.call('exitApp', {
      closeActionType, animated
    }, fn);
    

    入参

    名称类型描述必选默认值版本
    closeActionTypestring‘exitSelf’(退出自身应用)、’exitTop’(退出栈顶应用)N‘exitTop’10.1.8
    animatedbool是否开启动画Ntrue10.1.8

    使用注意

    • 对于没有申请过appId的页面,都是以20000067这个appId运行,因此,任何页面内调用exitApp,所有页面都会关闭。