首页 > 解决方案 > 电子生成器快照安装程序混淆主目录

问题描述

这是上一个问题Defult home directory for snap installer using electron-builder的后续,根据那里的要求询问。

我目前正在构建一个电子应用程序,.deb.snap使用电子构建器构建安装程序。我的应用程序用于showSaveDialog/showOpenDialog打开/保存打开 nautilus(在 ubuntu 中)的文件,如文件资源管理器。现在如果使用.snap安装程序安装应用程序,资源管理Home器弹出中的选项卡指向/home/user/snap/<app>/<revision>/如下图所示,而不是我们通常home在 linux 中调用的实际目录(/home/username/)。由于Home此弹出式资源管理器窗口中的不是实际用户的主目录,因此用户会感到困惑。
有没有办法来解决这个问题?

在此处输入图像描述

标签: electronelectron-buildersnapcraft

解决方案


这似乎是基于 GTK 的打开/保存对话框在快照限制中运行时的常见问题。

网络上散布着以下错误报告:

上面最后一个链接中的评论者建议设置 $G_HOME 环境变量。

您可以覆盖此变量以影响文件选择器,但您需要尽早执行此操作。在我的测试中,它需要在 app-ready 事件之前完成:

const os = require("os");
process.env.G_HOME = os.userInfo().homedir;

const {app, dialog} = require("electron");

app.on("ready", function() {
    console.log(process.env.G_HOME); // should print your actual home directory
    dialog.showOpenDialogSync();
});

这样做需要您自担风险;这种变化可能还有其他潜在的不良影响。我没有在快照限制下运行它,但能够更改文件选择器用于“主页”条目的目录。


推荐阅读