uni-app vue3 + vite + ts构建项目在ios13基座上运行仅显示tabbar

uni-app vue3 + vite + ts构建项目在ios13基座上运行仅显示tabbar

操作步骤:

  • 运行到ios基座

预期结果:

  • 页面正常显示

实际结果:

  • ios基座上只显示tabbar

bug描述:

  • uni-app: vue3 + vite + ts构建的项目运行到ios13基座上只显示tabbar

机密信息

信息类别 内容
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本 window10
手机系统 iOS
手机系统版本 iOS 13.4
手机厂商 苹果
手机机型 iPhone Xr
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 CLI
CLI版本号 @vue/cli 5.0.8

Image


更多关于uni-app vue3 + vite + ts构建项目在ios13基座上运行仅显示tabbar的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

新建一个空模板或者运行一下hello示例项目看看是否会复现该问题

更多关于uni-app vue3 + vite + ts构建项目在ios13基座上运行仅显示tabbar的实战教程也可以访问 https://www.itying.com/category-93-b0.html


是我搞错了,分包页面中有个引入的js报错导致的, 又不知道怎么删帖

回复 面向百度开发: 感谢反馈,已经将该话题归属为“不是bug”

uni-app 项目中,使用 Vue 3 + Vite + TypeScript 构建的应用在 iOS 13 基座上运行时,仅显示 TabBar 而页面内容不显示,可能是由于以下几个原因导致的:

1. 兼容性问题

iOS 13 对一些现代 JavaScript 特性的支持可能不够完善,尤其是使用 Vite 构建的项目,可能会生成一些 iOS 13 不支持的语法或 API。

解决方案:

  • 确保你的 Vite 配置中设置了合适的 target,以便生成的代码兼容 iOS 13。可以在 vite.config.ts 中添加以下配置:
    export default defineConfig({
      build: {
        target: 'es2015' // 或者更低的版本,如 'es5'
      }
    });
    
  • 使用 @vitejs/plugin-legacy 插件来生成兼容旧浏览器的代码:
    npm install @vitejs/plugin-legacy --save-dev
    
    然后在 vite.config.ts 中配置:
    import legacy from '@vitejs/plugin-legacy';
    
    export default defineConfig({
      plugins: [
        legacy({
          targets: ['iOS >= 9', 'Android >= 4.4'],
          additionalLegacyPolyfills: ['regenerator-runtime/runtime']
        })
      ]
    });
    

2. CSS 兼容性问题

iOS 13 对一些 CSS 属性的支持可能不完整,导致页面布局出现问题。

解决方案:

  • 检查你的 CSS 代码,确保使用了兼容的 CSS 属性。可以使用 autoprefixer 来自动添加浏览器前缀:
    npm install autoprefixer --save-dev
    
    然后在 vite.config.ts 中配置:
    import autoprefixer from 'autoprefixer';
    
    export default defineConfig({
      css: {
        postcss: {
          plugins: [
            autoprefixer({
              overrideBrowserslist: ['iOS >= 9', 'Android >= 4.4']
            })
          ]
        }
      }
    });
    

3. JavaScript 错误

页面加载时可能存在 JavaScript 错误,导致页面渲染失败。

解决方案:

  • 在 iOS 13 上使用 Safari 的开发者工具(可以通过 macOS 上的 Safari 远程调试 iOS 设备)查看控制台是否有错误信息。
  • 如果有错误,根据错误信息进行修复。

4. uni-app 配置问题

uni-app 本身可能有一些配置不兼容 iOS 13。

解决方案:

  • 确保你使用的 uni-app 版本是最新的,并且支持 iOS 13。
  • 检查 pages.json 中的配置,确保页面路由和 TabBar 配置正确。

5. 页面加载问题

可能是页面加载时出现了一些问题,导致页面内容没有显示出来。

解决方案:

  • 在页面的 onLoadonShow 生命周期钩子中添加日志,检查页面是否正常加载。
  • 确保页面组件正确引入,并且没有异步加载问题。

6. 网络请求问题

如果页面内容依赖网络请求,可能是请求失败导致页面内容为空。

解决方案:

  • 检查网络请求是否成功,确保 API 请求在 iOS 13 上能够正常执行。
  • 如果使用了 fetchaxios,确保这些库在 iOS 13 上兼容。

7. Polyfill 缺失

一些现代 JavaScript API 在 iOS 13 上可能不可用,需要引入 Polyfill。

解决方案:

  • 使用 core-jsregenerator-runtime 来提供必要的 Polyfill:
    npm install core-js regenerator-runtime --save
    
    然后在项目的入口文件(如 main.ts)中引入:
    import 'core-js/stable';
    import 'regenerator-runtime/runtime';
回到顶部