在h5扫码开发中,中转页要处理很多逻辑,判断页面跳转,获取跳转页面前的数据,有时在跳转页面前需要先调用接口,在中转页完成大量数据获取,在此记录

路径传参

  • 短参数:直接跟在路径后面用问号如/subpkg/h5/payment/index?tipMessage=1

  • 长参数:配合本地缓存来传参

传参页:

// 1. 生成一个唯一的 key(也可以用时间戳)
const tempKey = 'temp_free_data_' + Date.now();

// 2. 将数据存入缓存
uni.setStorageSync(tempKey, free.data.bdata);

// 3. 只传这个 key,URL 非常短,绝对不会超限
this.redirectTo(`/subpkg/h5/payment/index?cacheKey=${tempKey}`);

接收参数页:

export default {
  onLoad(options) {
    // 1. 获取传过来的 key
    const cacheKey = options.cacheKey;
    
    if (cacheKey) {
      // 2. 从缓存中读取真正的数据
      const detailInfo = uni.getStorageSync(cacheKey);
      
      if (detailInfo) {
        console.log('拿到数据了:', detailInfo);
        this.detailInfo = detailInfo;
        
        // 3. 重要:用完之后记得删除缓存,防止垃圾数据堆积
        uni.removeStorageSync(cacheKey);
      } else {
        console.error('缓存数据丢失或已过期');
        // 处理错误情况,比如返回上一页
      }
    }
  }
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐