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

React Native WebView中HTML文本输入底部弹出异常窗口问题

React Native WebView 唤起原生键盘解决方案

你遇到的带“Done”按钮的小窗口是iOS平台的辅助输入面板,并非系统原生键盘。这种情况通常是WebView的默认配置限制了原生键盘的触发逻辑,以下是直接可行的解决方法:

  • 开启WebView的原生键盘允许属性
    在iOS上,WebView默认要求用户主动操作才能唤起键盘,显式设置keyboardDisplayRequiresUserAction为false即可解除限制:

    import { WebView } from 'react-native-webview';
    
    // 组件中使用WebView
    <WebView
      source={{ uri: '你的HTML页面地址' }}
      keyboardDisplayRequiresUserAction={false}
      // 其他必要配置
    />
    
  • 排查HTML输入框的拦截逻辑
    检查你的HTML代码,确保输入框没有设置readonly属性,也不存在自定义JS脚本阻止原生键盘唤起的情况。

  • 注入脚本强制触发原生键盘(iOS兜底方案)
    如果上述方法无效,可以通过注入JavaScript脚本,通过失焦再聚焦的方式强制唤起原生键盘:

    const injectKeyboardFix = `
      document.addEventListener('focus', (event) => {
        const target = event.target;
        if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA') {
          setTimeout(() => {
            target.blur();
            setTimeout(() => target.focus(), 100);
          }, 0);
        }
      }, true);
    `;
    
    <WebView
      source={{ uri: '你的HTML页面地址' }}
      keyboardDisplayRequiresUserAction={false}
      injectedJavaScript={injectKeyboardFix}
    />
    
  • Android端兼容配置
    Android平台一般不会出现该问题,但如果遇到类似情况,确保WebView启用了JavaScript和DOM存储:

    <WebView
      source={{ uri: '你的HTML页面地址' }}
      javaScriptEnabled={true}
      domStorageEnabled={true}
    />
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:15:44