三星 Galaxy S23 Ultra (Android 13) 上的键盘震动(打开/关闭)

问题描述 投票:0回答:1

我遇到一个错误,当我关注 React Native 应用程序中 WebView 中的输入字段时,键盘不断打开和关闭(震动)。此行为仅发生在运行 Android 13 的三星 Galaxy S23 Ultra 上。其他 Android 设备或 iOS 上不存在此问题。

当点击输入字段时,键盘开始打开但立即关闭,并且此循环重复,导致明显的“震动”效果。这使得无法在输入字段中输入内容。

受影响的设备:
设备:三星 Galaxy S23 Ultra
安卓版本:13
已测试的其他设备:在各种 Android 设备和 iOS 上运行良好。

版本:
反应本机网页视图:“^13.12.2”
React Native:“0.71.19”

代码示例:

<Container>
  <WebView
    ref={(webview) => {
      this.webview = webview;
    }}
    source={{
      uri: 'https://www.google.com/'
    }}
    injectedJavaScript={this.injectjs()}
    javaScriptEnabled
    onMessage={(e) => this.onMessage(e)}
    startInLoadingState
    useWebKit={true}
    style={{ marginTop: getStatusBarHeight() }}
  />
</Container>

重现步骤:
在运行 Android 13 的 Samsung Galaxy S23 Ultra 上的 WebView 组件中加载包含输入字段的 URL。
点击输入字段以聚焦并调出键盘。
当专注于输入字段时,观察键盘的晃动(它快速打开和关闭)。

预期行为:
当输入字段聚焦时,键盘应平滑打开并保持可见,从而允许用户不间断地打字。

实际行为:
键盘不断打开和关闭,产生晃动效果,阻止文本输入。

相关问题:
此错误似乎与以下未解决的问题有关,但我的案例似乎特定于三星 Galaxy S23 和 S24 Ultra:

#3454
#2425
#1824

其他背景:
此问题仅影响此特定设备和 Android 版本。 WebView 在其他 Android 设备和 iOS 上按预期工作。任何见解或建议将不胜感激!

尝试修复:
我尝试了以下解决方案,但都没有解决问题:

  • 调整AndroidManifest.xml中的windowSoftInputMode同时调整Resize和AdjustPan。

  • 禁用 WebView 中的滚动 (scrollEnabled={false})。

这些尝试都没有解决此特定设备上的问题。

javascript react-native webview keyboard react-native-webview
1个回答
0
投票

已解决的问题:前台服务注册冲突

我已经解决了这个问题,结果发现它与WebView或键盘没有直接关系。

原因: 该问题是由我使用 @supersami/rn-foreground-service 库在我的应用程序中注册前台服务的方式引起的。最初,我在 index.js 文件中注册了该服务,如下所示:

ReactNativeForegroundService.register({ id: 144 });

这触发了我的应用程序中的意外行为,包括键盘震动。

解决方案:我修改了前台服务注册并正确配置如下:

常量配置= { 配置:{ 警报:真实, 编号:144, onServiceErrorCallBack: 函数 () { console.warn('[ReactNativeForegroundService] onServiceErrorCallBack', 参数); }, } };

ReactNativeForegroundService.register(config);

通过添加错误回调并更新注册流程,问题现已解决,键盘抖动问题也消失了。

© www.soinside.com 2019 - 2024. All rights reserved.