皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

移动设备上的 Qt for WebAssembly

移动设备上的 Qt for WebAssembly
Qt for WebAssembly 在移动设备上,特别是手机上,缺少一个基本特性——对本机键盘的支持。它可能有效,也可能无效。如果它起作用了,它就不会很好地起作用。棘手的问题是在需要时打开键盘,在不需要时关闭。在我们针对的任何平台(iOS、Android 和 Windows)上,都没有简单的 API 可以做到这一点。

虽然使用 javascript 打开键盘对我来说有点 hacky,但我们使用 Emscripten 的 C++ 接口创建一个隐藏的 javascript 文本输入元素并将焦点设置在该元素上,从而打开平台键盘。

Android 上的 Emscripten 还存在另一个问题 – 通常的 Emscripten 输入事件 API 无法正常工作。没有像在其他平台上那样处理在本机虚拟键盘上键入的任何内容。我发现我可以利用用于弹出键盘的隐藏输入元素来监听输入字符,然后将它们发送到 Qt。

事实上,这个补丁在 Qt for WebAssembly 上增加了对 iOS、Android 和 Windows 的原生移动键盘的支持。(现在作为 66a76a5def46d0e4a330f7130ad440c639b87cf7 合并到 dev 中),为时已晚,无法进入 6.3。

移动设备上的其他问题是内存(像往常一样)。直到最近,Safari 将浏览器内存限制为比其他浏览器少得多。

Qt 涵盖的其他无法在 Qt for WebAssembly 上运行的移动设备领域是传感器和蓝牙连接。虽然有一些传感器支持的补丁,但它尚未合并,可能需要更新。它也可能根本不起作用。

javascript 的蓝牙连接目前仅在 Chrome 浏览器上受支持,并且目前处于试验阶段。虽然我可能会将此支持添加到 Qt WebAssembly,但它不会被合并,并且 API 可能太多变。

您发现 Qt WebAssembly 在移动设备上缺少的任何区域,请报告给 https://bugreports.qt.io/

转自 https://www.qt.io/blog/qt-for-webassembly-on-mobile-devices