如何操作保证IOS微信使用a标签跳转页面后返回不刷新页面?

项目是使用react开发的一个嵌入到微信公众号的h5页面,使用路由来控制的页面跳转。

现在有一个文档下载功能,安卓端是直接通过a标签打开手机浏览器来实现;

但IOS端不会打开safari浏览器,而是直接在微信跳转到一个预览页面,IOS端微信返回是通过底部自带的返回按钮来实现的,没办法进行监控,返回主页面的时候页面会刷新重新请求数据。

考虑过在跳转之前把数据缓存下来,返回的时候通过读取缓存数据来渲染页面,但需要对各种状态、参数、滚动高度等都进行缓存,操作比较复杂,放弃。

有没有什么方法可以让微信浏览器在返回的时候读取自己的缓存,不刷新页面?

https://blog.csdn.net/qq_29217789/article/details/102742810

直接使用a标签进行下载,IOS页面可以正常返回,但安卓返回到微信页面的时候,发现页面崩溃,最后采用了模拟点击a标签来进行下载:

const a = document.createElement('a');
a.setAttribute('download', '');
a.setAttribute('target', '_self');
a.setAttribute('href', url);    // url:文件地址
a.click();