iPhone小程序webview中获取不到sessionStorage/localStorage(前端监听页面缓存)

背景:

程序员三大疑问:

  1. 不可能啊,我手机正常啊,你获代码了吗?你再试下?
  2. 哎呀,为啥写的一样我的报错啊;
  3. 为啥写的一样我的不报错啊;

做项目提测的时候,测试说他手机获取不到sessionStorage,我试了下我手机和服务端同事的手机都可以获取到。经查:测试手机为IOS,而前端(鄙人)和后端的手机都是Android,我第一时间想到了缓存。如下:

   mounted: function () {
        this.initPageData();
        this.judgeShowSpread();
   },
    methods: {
		 // 初始化页面数据
        initPageData () {
            this.medicOrg = window.sessionStorage.getItem('medicOrg') || window.PAGE_DATA.medicOrg; // 获取修改后的机构
            this.appointmentCode = window.PAGE_DATA.appointmentCode; // 初始化项目标识代码
            this.communityHospitalId = window.sessionStorage.getItem('medicOrgId') || window.PAGE_DATA.communityHospitalId; // 初始化机构id
        },
    }

如果页面为缓存而得到的,就不会走vuemounted钩子,则无法及时获取到sessionStorage
目前没有100%确认这个页面缓存和操作系统有关,
解决:

window.addEventListener('pageshow', function (e) { // 监听页面缓存,若缓存则刷新
    if (e.persisted) {
        window.location.reload();
    }
});
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值