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 |

更多关于uni-app vue3 + vite + ts构建项目在ios13基座上运行仅显示tabbar的实战教程也可以访问 https://www.itying.com/category-93-b0.html
新建一个空模板或者运行一下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-devvite.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-devvite.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. 页面加载问题
可能是页面加载时出现了一些问题,导致页面内容没有显示出来。
解决方案:
- 在页面的
onLoad或onShow生命周期钩子中添加日志,检查页面是否正常加载。 - 确保页面组件正确引入,并且没有异步加载问题。
6. 网络请求问题
如果页面内容依赖网络请求,可能是请求失败导致页面内容为空。
解决方案:
- 检查网络请求是否成功,确保 API 请求在 iOS 13 上能够正常执行。
- 如果使用了
fetch或axios,确保这些库在 iOS 13 上兼容。
7. Polyfill 缺失
一些现代 JavaScript API 在 iOS 13 上可能不可用,需要引入 Polyfill。
解决方案:
- 使用
core-js和regenerator-runtime来提供必要的 Polyfill:
然后在项目的入口文件(如npm install core-js regenerator-runtime --savemain.ts)中引入:import 'core-js/stable'; import 'regenerator-runtime/runtime';

