getSessionData 获取会话数据

优质
小牛编辑
125浏览
2023-12-01
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,那么并不会清除数据,这个时候如果这个设备登入另一个账号,是可以看到这个数据的。