【发布时间】:2021-08-15 19:15:26
【问题描述】:
我计划将带有 C++ 的 QML 应用程序转换为 WebAssembly,但我缺少一个关键概念。此应用在启动时读取本地配置文件以加载首选项,并确定相关服务的 IP/端口。
如果我将其转换为 WebAssembly,应用程序如何访问配置文件? (或者甚至找到带有配置文件的主机)?应用的一部分是否仍然在主机上运行,一部分在浏览器中?
【问题讨论】:
标签: qt webassembly
我计划将带有 C++ 的 QML 应用程序转换为 WebAssembly,但我缺少一个关键概念。此应用在启动时读取本地配置文件以加载首选项,并确定相关服务的 IP/端口。
如果我将其转换为 WebAssembly,应用程序如何访问配置文件? (或者甚至找到带有配置文件的主机)?应用的一部分是否仍然在主机上运行,一部分在浏览器中?
【问题讨论】:
标签: qt webassembly
Qt 使用模拟文件系统,它可以在内存中或基于索引数据库 (IDBFS)。根据定义,webassembly 是沙盒的,除非用户明确提供,否则您无法访问主机操作系统中的任何文件。
您可以在第一次启动时创建文件并在之后更新它,它将像普通文件一样工作,但如果用户删除您网站的缓存/文件,它将存储在浏览器索引数据库中配置文件将丢失。
您也可以使用QFileDialog::getOpenFileContent() 向用户请求文件。详细说明https://wiki.qt.io/Qt_for_WebAssembly#Files_and_local_file_system_access
【讨论】: