uni-app打包的H5页面在百度app中首次访问正常,第二次访问变空白

发布于 1周前 作者 nodeper 来自 Uni-App

uni-app打包的H5页面在百度app中首次访问正常,第二次访问变空白

类别 信息
产品分类 uniapp/H5
PC开发环境 Windows
操作系统版本 win10 21H2
HBuilderX类型 正式
HBuilderX版本 3.4.7
浏览器平台 手机系统浏览器
浏览器版本 百度app
项目创建方式 HBuilderX

操作步骤:

用安卓手机下载百度app访问https://www.cgjoy.com/h5/。第一次访问正常,之后再次访问就成了空白

预期结果:

百度app多次访问也正常

实际结果:

百度app第二次访问成空白

bug描述:

百度第一次访问网址时正常访问,再次访问后就会出现空白
其它浏览器访问都正常

71d0d7adc7862bdec5a4efbd51c438b9.zip


6 回复

工作人员有帮忙看一下?


工作人员有帮忙看一下?

您可以在h5中集成 vconsole等工具 看看是否是页面报错问题。

集成 vconsole 不显示的

我也碰到了同样的问题,请问你解决了吗?

在uni-app打包的H5页面在百度App中首次访问正常,但第二次访问变空白的问题,可能由多种原因引起。以下是一些可能的原因及解决方案:


1. 缓存问题

  • 原因:百度App可能对H5页面进行了缓存,导致第二次访问时加载了错误的缓存内容。
  • 解决方案
    • 在页面加载时,强制清除缓存或禁用缓存。可以在index.html中添加以下代码:
      <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
      <meta http-equiv="Pragma" content="no-cache">
      <meta http-equiv="Expires" content="0">
    • 在uni-app的manifest.json中,配置h5router模式为history,并设置base路径:
      "h5": {
        "router": {
          "mode": "history",
          "base": "/your-app-path/"
        }
      }

2. 路由模式问题

  • 原因:如果使用了hash模式,百度App可能对#后的路径处理不当,导致页面加载失败。
  • 解决方案
    • 将路由模式改为history模式。在manifest.json中配置:
      "h5": {
        "router": {
          "mode": "history"
        }
      }
    • 如果使用history模式,确保服务器配置正确,支持history模式的回退。

3. 资源加载失败

  • 原因:第二次访问时,某些静态资源(如JS、CSS文件)加载失败,导致页面空白。
  • 解决方案
    • 检查浏览器控制台,查看是否有资源加载失败的报错。
    • 确保静态资源的路径正确,可以使用绝对路径或CDN地址。
    • manifest.json中配置h5publicPath,确保资源路径正确:
      "h5": {
        "publicPath": "/your-app-path/"
      }

4. 百度App的兼容性问题

  • 原因:百度App可能对某些JavaScript API或CSS样式支持不完善,导致页面渲染异常。
  • 解决方案
    • 检查页面中是否使用了百度App不支持的API或特性。
    • 使用uni-app的兼容性处理,例如uni.getSystemInfo获取环境信息,针对百度App做特殊处理。
    • 在页面加载时,添加兼容性检测代码:
      if (navigator.userAgent.indexOf('baiduboxapp') !== -1) {
        // 针对百度App的特殊处理
      }
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!