# 移动端适配问题排查与解决手册
当您在移动端(手机、Pad)使用 EOS 平台时,遇到样式错乱、功能失效或组件显示异常等问题,请根据以下典型现象进行排查。
# 现象一:移动端按钮点击无响应或功能不生效
典型表现:
- 自定义按钮(如发起流程、撤销)在移动端点击后无反应。
this.Api.hideElements、this.Api.showElements等 API 在移动端无效。- 弹窗选择打开视图后,视图的搜索条件不显示。
常见原因:
- 前端包版本不匹配:PC 端和移动端的前端包未同步更新,或移动端包版本过低,缺少对应功能的支持。
- API 兼容性问题:某些在 PC 端可用的 API,在移动端并未实现或实现方式不同(如
this.Api.hideElements在特定版本中存在缺陷)。 - 缓存问题:浏览器或 APP 缓存了旧的 JavaScript/CSS 文件,导致新功能未加载。
解决步骤:
- 检查并更新移动端前端包:
- 确认当前使用的移动端前端包(
mobile目录下的资源)是否为最新版本。 - 如果问题在更新 PC 端后出现,通常需要 同步更新移动端的前端包。许多补丁说明中会明确指出“须同时更新 pc 端和 mobile 端的前端包”。
- 确认当前使用的移动端前端包(
- 清理浏览器/APP 缓存:
- 在移动端浏览器设置中清除缓存数据。
- 如果是集成在 APP 内的 H5 页面,尝试重启 APP 或使用无痕模式访问进行测试。
- 替换特定组件包:
- 如果问题是特定组件(如
pm-textarea)无法编译或显示,在确认包版本无误后,可以尝试 单独替换components文件夹,而不是整个移动端包。部分案例显示,替换整个包后问题依旧,但单独替换components后恢复正常。
- 如果问题是特定组件(如
- 调试移动端代码(开启 vConsole):
- 在移动端页面上开启调试工具,查看具体的报错信息。
- 开启方法:修改移动端部署目录下的
config/app-config.json文件,添加"isDebug": true,然后重启 Nginx 或刷新页面。通常在页面右下角会出现 vConsole 按钮,点击即可查看控制台日志。
# 现象二:移动端页面布局错乱、遮挡或滚动异常
典型表现:
- 页面底部按钮被底部菜单栏遮挡。
- 使用卡片组件或子表格后,页面无法上下滑动(卡死)。
- 表单字段显示不全,或出现大面积空白。
常见原因:
- 高度计算错误:移动端页面底部工具栏与表单内容的高度未正确计算,导致留白或遮挡。
- CSS 样式冲突:项目自定义的全局 CSS 与 EOS 移动端框架样式冲突,导致布局异常。
- 组件渲染问题:特定组件(如卡片、子表格)在移动端渲染时未正确处理滚动容器。
解决步骤:
- 更新修复补丁:
- 针对底部按钮遮挡、页面无法滚动等问题,产品已发布过相关补丁。请确保已应用最新的移动端补丁。
- 检查并注释自定义 CSS:
- 如果在应用中心-首选项中添加了全局 CSS,尝试暂时注释掉,排查是否因样式冲突导致。
- 检查项目自身是否引入了会影响移动端滚动或定位的 CSS。
- 使用分组控制替代显隐:
- 如果因为组件动态显隐(
hideElements不生效)导致布局问题,可以考虑使用 分组控制 组件,通过控制不同分组的显示条件来实现两套模板的切换,而不是直接隐藏/显示组件。
- 如果因为组件动态显隐(
- 为组件设置固定高度:
- 对于资源容器等高度自适应的组件,可以尝试为其设置一个固定的高度(如
height: 500px;),强制其占位,避免底部留白。
- 对于资源容器等高度自适应的组件,可以尝试为其设置一个固定的高度(如
# 现象三:移动端特定组件显示或功能异常
典型表现:
- 多行文本输入框(
pm-textarea)无法编译或显示。 - 日期选择组件无法清空,或清空按钮在禁用状态下仍可点击。
- 下拉选择(多选)清空后,再次点击仍保留上一次的选择项。
- 人员选择组件显示的机构下人员数量与 PC 端不一致。
常见原因:
- 组件代码缺陷:特定版本的组件在移动端存在已知 Bug。
- 组件配置不一致:移动端的组件配置可能与 PC 端不同步,或缺少必要的扩展属性。
- 产品设计差异:部分功能(如人员数量显示)在 PC 端和移动端的设计初衷不同,导致表现不一致。
解决步骤:
- 应用最新的组件补丁:
- 再不顶列表中查找针对该组件问题的补丁,或更新到最前的前端补丁包。
- 单独替换组件文件:
- 如果更新整个前端包风险较大,可以请求售后提供单个组件的修复文件(如
components文件夹),进行精确替换。
- 如果更新整个前端包风险较大,可以请求售后提供单个组件的修复文件(如
- 通过扩展属性或代码调整:
- 清空按钮:如果日期组件在禁用状态下仍有清空按钮,可以在移动端通过 CSS 隐藏
.van-field__clear来解决。 - 人员数量:如需与 PC 端保持一致(不显示数量),可以考虑升级到 EOS 8.3.3 版本,该版本已优化此问题。
- 下拉框渲染:对于下拉框清空后仍保留选中项的问题,更新修复补丁。
- 清空按钮:如果日期组件在禁用状态下仍有清空按钮,可以在移动端通过 CSS 隐藏
# 预防措施
- 建立同步更新机制:在更新 PC 端前端包后,务必同时更新移动端前端包,确保两端功能对齐。
- 提前进行移动端测试:在开发低开应用时,应频繁使用 IDE 的移动端预览功能,并在发布前在真机上进行全面测试。
- 关注补丁说明:在申请或应用补丁时,仔细阅读补丁报告,确认其是否同时包含 PC 端和移动端的修复。