如何在触摸屏上运行Flutter Web应用程序的屏幕键盘

3

我正在为Web构建Flutter,希望在触摸屏上使用它。 我的应用程序运行良好,并接受来自鼠标的输入,但当我想要使用文本输入字段时,应用程序需要我连接的物理键盘(因为我在Macbook上运行Chrome)。 我想在类似触摸屏亭的设置中使用这个Web应用程序,所以我希望始终出现虚拟(屏幕上的)键盘进行文本输入。

我尝试了以下方法:

  @override
  void initState() {
    SystemChannels.textInput.invokeMethod('TextInput.show');
    super.initState();
  }

如果我在虚拟平板电脑上运行,这确实会强制打开虚拟键盘,但是当我在 Chrome 中运行完全相同的 Flutter 应用程序时,它却不起作用。

我正在使用 v1.9.1+hotfix.3-pre.1,在 Mac OS X 10.14.6 18G103 上运行。

有没有人知道一个方法可以强制 Flutter 总是使用虚拟屏幕键盘?


https://github.com/flutter/flutter/issues/32763 让我想到我的问题可能与Flutter“知道”我正在使用带键盘的PC有关。因此,如果我在没有连接键盘的触摸屏上使用它,也许它会起作用?Flutter如何知道是否有物理键盘? - Eradicatore
您可以使用 https://pub.dev/packages/virtual_keyboard_multi_language 包来实现屏幕键盘。 - Jayesh Choudhary
1个回答

1
我认为Flutter没有本地函数可以调用桌面虚拟键盘。作为一种解决方法,您可以使用virtual_keybaord_multi_language插件在应用程序中创建一个键盘,或者您可以在设备上默认启用虚拟键盘。如果您在Windows上运行,则切换到平板电脑模式时,当TextField处于活动状态时将自动调用软键盘。
编辑:这似乎是一个有效的用例,您可以在此票证上跟踪功能请求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接