h5兼容性问题总结

ios返回页面不刷新
 
    描述:从主页面跳转到其他页面,点击左上角返回按钮回到主页面,发现页面没有刷新,而是直接读取的缓存
    
    解决:
      let browserRule = /^.*((iPhone)|(iPad)|(Safari))+.*$/;
      if (browserRule.test(navigator.userAgent)) {
        window.onpageshow = event => {
          if (event.persisted) { //如果event.persisted为true,证明该页面被浏览器缓存了
            this.initPage(); // 重新执行初始化页面方法
          }
        };
      }
2.8.7vant轮播图组件`在ios微信里有样式bug 

    描述: 主页面跳转到其他页面再返回以后,轮播图样式错乱

    解决: 改为使用`swiper插件`
 
h5跳转小程序问题

1. 跳转`小程序`标签在`微信jssdk 1.4.0`下不生效

    解决:跳转小程序标签需要使用`1.6.0`及其以上的版本

2. ios点击跳转按钮无效

    描述:在`ios微信端`从未授权的链接进入主页面,需要刷新一下才能按钮才能生效, 但直接通过已授权过的链接进入就没有这样的问题

    解决: 给`初始化微信jssdk`加了1s的延时,再次测试没有出现问题

3. 跳转`小程序`后,监听小程序关闭的方法

    描述:需求需要在关闭`小程序`后,刷新当前页面,但在微信文档没有找到h5监听小程序关闭的回调等方法

    解决:使用`visibilitychange`事件监听页面的显示隐藏
复制代码
        let hiddenProperty =
        "hidden" in document
          ? "hidden"
          : "webkitHidden" in document
          ? "webkitHidden"
          : "mozHidden" in document
          ? "mozHidden"
          : null;
      document.addEventListener("visibilitychange", () => {
        if (document[hiddenProperty]) {
          // console.log("页面隐藏了");
        } else {
          // console.log("页面显示了");
        }
      });
复制代码
   注意:1.由于兼容性原因,请确保使用`document.addEventListener`而不是`window.addEventListener`,`Safari<14`仅支持前者

       2.`Safari7`不支持该事件
 
挽留弹框问题

1.  华为手机需要手动点一下才会触发`popstate`

    解决:暂时没有找到解决方法

2. ios跳转页面点击返回,页面出现挽留弹框

    解决:从其他页面返回不注册弹框事件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
window.addEventListener(
   "popstate",
   () => {
       //跳转页面时加上的flag
     let goProduct = localStorage.getItem("goProduct") || "";
     if (goProduct) {
       localStorage.removeItem("goProduct");
     } else {
       this.pupObj.detainFlag = true;
       this.pupObj.detainCash = this.cashCount;
     }
   },
   false
 );

  

posted @   lzhflzjx  阅读(495)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示