You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS运行的Cordova iOS应用:输入框异常灰色栏问题求助

Cordova iOS应用编译到macOS运行时虚拟键盘异常问题

将Cordova iOS应用编译到macOS平台运行时出现异常:当光标进入输入框时,应用尝试唤起虚拟键盘,却仅显示一条遮挡底部菜单的不透明灰色栏。

无输入焦点时的界面:
无输入焦点时的界面

光标进入输入框后,屏幕底部升起灰色栏:
光标进入输入框后的界面

Xcode抛出错误日志:

2023-07-30 11:10:05.834129+0200 I-Ching[36626:1668765] [RTILog]
-[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] Can only perform
input operation for an active session. sessionID =
2C255827-6219-472F-A781-44017AE0F4BC

经排查排除自身代码(如Bootstrap导航栏)问题,推测为iPad虚拟键盘唤起逻辑在macOS Catalyst环境下异常,以下是排查修复建议:

  • 升级Cordova iOS平台版本:确保使用支持macOS Catalyst的Cordova iOS版本,执行命令更新:
    cordova platform update ios
    
  • 配置Info.plist禁用虚拟键盘适配:在项目的Info.plist中添加以下配置,强制macOS使用物理键盘:
    <key>UIApplicationSupportsIndirectInputEvents</key>
    <false/>
    <key>UIRequiresPersistentKeyboard</key>
    <false/>
    
  • 修改Cordova WebView偏好设置:在config.xml中添加键盘相关配置,调整WebView的键盘行为:
    <preference name="KeyboardDisplayRequiresUserAction" value="false" />
    <preference name="DisallowOverscroll" value="true" />
    <preference name="KeyboardResize" value="false" />
    
  • 调试输入事件逻辑:使用Safari开发者工具连接macOS应用,监听输入框的focus事件,若存在异常可尝试重置焦点触发:
    document.querySelectorAll('input, textarea').forEach(el => {
      el.addEventListener('focus', () => {
        el.blur();
        setTimeout(() => el.focus(), 100);
      });
    });
    
  • 重置Cordova项目配置:若以上方案无效,移除并重新添加iOS平台:
    cordova platform remove ios
    cordova platform add ios@latest
    
  • 检查macOS系统设置:进入系统偏好设置-键盘,关闭“自动显示和隐藏菜单栏”,避免界面布局冲突影响键盘唤起逻辑。

内容的提问来源于stack exchange,提问作者brianfit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 02:32:14