页面设置"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

4 回复

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存在差异。

针对这个问题,可以尝试以下解决方案:

  1. 确保页面结构正确,避免使用绝对定位影响布局计算
  2. 检查页面是否有设置height:100%等可能影响布局计算的样式
  3. 可以尝试在onFocus事件中手动触发页面重排:
onFocus() {
    if(uni.getSystemInfoSync().platform === 'ios') {
        setTimeout(() => {
            window.scrollTo(0, 0)
        }, 100)
    }
}
  1. 或者使用adjustPan模式替代:
"app-plus": {
    "softinputMode": "adjustPan"
}
回到顶部