我尝试在 Raspberry Pi 4B 上以 kiosk 模式运行 Flutter 应用程序,但无法让它以全屏模式启动。
我已按照 Raspberry Pi Kiosk 模式教程中的说明设置 kiosk 模式,但这些步骤似乎更适合运行 Web 应用程序或网站,而不是独立的 Flutter 应用程序。尽管我尝试为我的 Flutter 应用程序调整这些说明,但它仍然无法以全屏模式打开。
以下是我采取的步骤: 安装必要的包:
sudo apt install wtype
使用 raspi-config 配置 Raspberry Pi 以启动至图形界面。
编辑 wayfire.ini 文件以自动启动我的 Flutter 应用程序:
sudo nano .config/wayfire.ini
将以下行添加到 [autostart] 部分:
[autostart]
panel = wfrespawn wf-panel-pi
background = wfrespawn pcmanfm --desktop --profile LXDE-pi
xdg-autostart = lxsession-xdg-autostart
flutterapp = /home/downloads/mydemoapp --kiosk --noerrdialogs --disable-infobars --no-first-run --ozone-platform=wayland --enable-features=OverlayScrollbar --start-maximized
screensaver = f
我可以使用这些步骤自动启动我的应用程序,但它没有按照我的预期以全屏模式打开。有谁知道如何让我的 Flutter 应用程序在真正的信息亭模式下运行,或者至少在启动时全屏运行?
我认为这些标志是为 Chromium 浏览器设计的。
特别是“--kiosk --noerrdialogs --disable-infobars --no-first-run --ozone-platform=wayland --enable-features=OverlayScrollbar --start-maximized”
您必须在 Flutter 应用程序配置中以某种方式控制窗口状态。
不幸的是,我可能无法解决您的问题,因为我转而在 Linux 上使用 PyQt 而不是 Flutter。
不过,我确实从尝试 Kiosk 模式我的 Svelte web 应用程序中学到了很多东西,这些参数绝对是仅适用于 Chromium/chrome 浏览器的参数,不适用于其他 GUI 应用程序。
大多数 GUI 框架都有一种方法可以最小化、最大化或删除窗口中的标题栏和退出按钮。我确信您可以创建一个脚本来阻止其他输入以在 Flutter 的 dart 后端模拟 kiosk 模式,但您必须从头开始执行此操作,这与仅调用 Chromium 的 kiosk 模式的易用性不同。