我正在树莓派 4 上使用 webkitgtk 构建信息亭应用程序。
此应用程序不会连接到 Internet,并且 UI 的所有 html、css、javascript 都位于本地文件系统上。
我正在使用 buildroot 设置 Linux 系统,从 buildroot 中提供的 pi 4 defconfig 开始。
我已经启用了运行 webkitgtk 所需的所有软件包。
此外,kiosk 应用程序已在我的桌面上使用相同的软件堆栈进行了测试,并且可以正常工作
但是,当我尝试在树莓派上启动应用程序时,会弹出一个空白页面。我通过启用本地文件访问来玩弄WebKitWebSettings
与我关联的对象。WebKitWebView
它仍然显示一个空白屏幕。
我的 pi4 应用程序包中还包含一个简单的 gtk3+ 应用程序。这样启动成功!
我真的很感激一些关于为什么会发生这种情况的指示,因为我已经走到了死胡同
更新
我启用了 Webkitgtk 软件包附带的 MiniBrowser 应用程序。输入本地url,页面不加载。它只在顶部给我一条消息,说“下载成功”。它似乎将我的输入视为下载
更新 2
经过一些更多的实验,我终于能够让 webkitgtk 在 pi 4 上工作。问题似乎源于使用webkit_web_view_load_uri()
api。
它似乎无法将我的 html 文档识别为网页。
我使用webkit_web_view_load_html()
电话解决了它。这包括一些技巧,首先将 html 文档的内容读入字符缓冲区,然后将其传递给webkit_web_view_load_html()
. 您还必须提供此函数调用的基本路径,以便能够解析 html 文档中的所有 url(脚本、css、图像等)。
我无法解决的另一个问题是,SVG 图像没有加载到 webkitgtk 中。我使用了 jpg 格式,它们可以工作。我怀疑这是由于构建 webkigtk 时的配置切换