JSAPI

  • Since 8.1

    getSessionData

    会话数据读取

    使用方法

    AlipayJSBridge.call('getSessionData', {
      keys: ['name']
    }, function(result) {
      console.log(result.data.name);
    });
    

    代码演示

    session数据读写

    <h2>点击下面按钮来查看效果</h2>
    <a href="javascript:void(0)" class="btn btn-defualt set">设置session数据</a>
    <a href="javascript:void(0)" class="btn btn-defualt get">读取session数据</a>
    
    
    <script>
    function ready(callback) {
      // 如果jsbridge已经注入则直接调用
      if (window.AlipayJSBridge) {
        callback && callback();
      } else {
        // 如果没有注入则监听注入的事件
        document.addEventListener('AlipayJSBridgeReady', callback, false);
      }
    }
    ready(function() {
      document.querySelector('.set').addEventListener('click', function() {
        AlipayJSBridge.call('setSessionData', {
          data: {
            name: 'Liu Hunan ' + Date.now(),
            age: '15'
          }
        });
      });
    
      document.querySelector('.get').addEventListener('click', function() {
        AlipayJSBridge.call('getSessionData', {
          keys: ['name']
        }, function(result) {
          alert(JSON.stringify(result));
        });
      });
    });
    </script>
    

    入参

    名称类型描述必选默认值版本
    keysarray要读取的数据的keyY
    fnfunction回调函数N

    出参

    回调函数带入的参数result: {data}

    名称类型描述
    dataobjectkeys对应的字段数据

    使用注意

    • sessionData是以每个app为单位的,因此可以实现app内的数据共享。
    • 当app退出之后,数据自动清除。
    • 没有办法去remove sesionData的key,只有通过设置一个空值来清除。

    • 假如用户账号在其他设备登入导致logout,那么并不会清除数据,这个时候如果这个设备登入另一个账号,是可以看到这个数据的。