1. iOS 底部安全区域留白异常
- 问题:iOS 设备底部内容被安全区域遮挡或留白过多。
- 解决 :在
manifest.json
中配置app-plus
的safearea
参数,设置offset: "none"
禁用底部安全区域偏移。
2. Button 组件伪元素边框残留
-
问题 :Button 组件在部分平台显示默认黑色边框,即使设置
border: none
无效。 -
解决:通过 CSS 覆盖伪元素样式:
csscssCopy Code button::after { border: none; display: none; }
需注意全局样式污染风险。
3. H5 端上传文件格式异常
- 问题 :
uni.uploadFile
在 H5 端上传图片时,后端无法识别文件类型(如后缀名丢失)。 - 解决 :手动为
FormData
添加name
和type
字段,或使用uni.chooseImage
返回的tempFiles
中的File
对象。
4. Textarea 组件点击事件冒泡干扰
- 问题:iOS 设备中点击 Textarea 会意外触发父级元素事件(如页面滚动)。
- 解决 :在 Textarea 外层添加
@touchstart.stop
阻止事件冒泡,或使用catchtouchstart
事件。
5. APP 自动登录状态同步问题
- 问题:用户登录信息存储后,多页面间状态同步延迟或失效。
- 解决 :结合
Vuex
全局状态管理 +uni.setStorageSync
持久化存储,并在app.vue
的onLaunch
中初始化状态。
6. 导航栏与胶囊按钮高度适配
-
问题:自定义导航栏在 Android/iOS 中与胶囊按钮间距不一致。
-
解决 :通过
uni.getSystemInfoSync()
动态计算导航栏高度:- iOS:
状态栏高度 + 44px
- Android:
状态栏高度 + 48px
5。
- iOS:
7. 页面跳转参数类型隐式转换
- 问题 :
uni.navigateTo
传递的布尔值参数会被强制转为字符串类型。 - 解决 :在目标页面使用
JSON.parse()
或显式类型转换(如option.flag === 'true'
)。
8. APP 批量上传图片字段冲突
- 问题 :真机调试时
uni.uploadFile
批量上传多图,后台仅接收最后一张图片。 - 解决 :手动为每个文件对象添加唯一
name
字段,避免后端接收时覆盖同名文件。