页面设置"softinputMode": "adjustResize",Android可以正常生效,uni-app iOS的显示有问题
页面设置"softinputMode": “adjustResize”,Android可以正常生效,uni-app iOS的显示有问题
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | win 11 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
手机系统:iOS
手机系统版本号:iOS 18
手机厂商:苹果
手机机型:iPhone 11 pro max
页面类型:vue
vue版本:vue2
打包方式:云端
操作步骤:
页面有input组件在位置不是在底部,没有使用position: fixed;与 position: absolute;。 在page.json 设置 页面 “app-plus”: { “softinputMode”: “adjustResize” }
预期结果:
点击input iOS能正常上推页面
实际结果:
点击input iOS不能正常上推页面
bug描述:
页面有input组件在位置不是在底部,没有使用position: fixed;与 position: absolute;。
在page.json 设置 页面 "app-plus": {
"softinputMode": "adjustResize"
}
后,Android点击input键盘显示能将页面进行正常的上推,iOS点击input没有将页面进行正常的上推,需要输入内容后才正常上推。
见附件
更多关于页面设置"softinputMode": "adjustResize",Android可以正常生效,uni-app iOS的显示有问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
hello , 文档上有相关描述,自动上推,只有 app-android 没有 app-ios https://zh.uniapp.dcloud.io/component/input.html
更多关于页面设置"softinputMode": "adjustResize",Android可以正常生效,uni-app iOS的显示有问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
现象不是iOS不上推,是要输入后才会上推。跟这个属性没关系吧
这是一个iOS平台下常见的软键盘适配问题。在uni-app中,iOS对于adjustResize
模式的支持确实与Android存在差异。
针对这个问题,可以尝试以下解决方案:
- 确保页面结构正确,避免使用绝对定位影响布局计算
- 检查页面是否有设置
height:100%
等可能影响布局计算的样式 - 可以尝试在
onFocus
事件中手动触发页面重排:
onFocus() {
if(uni.getSystemInfoSync().platform === 'ios') {
setTimeout(() => {
window.scrollTo(0, 0)
}, 100)
}
}
- 或者使用
adjustPan
模式替代:
"app-plus": {
"softinputMode": "adjustPan"
}