这是一个适用于 Linux 的 Electron 应用程序。
main.js
const electron = require("electron");
const app = electron.app;
const browserWindow = electron.BrowserWindow;
const path = require("path");
const url = require("url");
let win;
function createWindow() {
win = new browserWindow({width: 800, height: 600});
win.loadURL(url.format({
pathname : path.join(__dirname,"index.html"),
protocol : "file",
slashes : true ,
}));
win.on("closed", () => {win = null;})
}
app.on("ready", createWindow);
app.on("window-all-closed", () => {
if(prcess.platform !== "darwin")
app.quit()
});
app.on ("activate", ()=> {
if(win == null)
createWindow()
});
我通过
npm start
在 Linux 中启动应用程序。
问题:
i) 如何在启动时自动启动它?
ii)要实现哪部分代码?
要在会话启动时在 Linux 中自动运行文件,请创建一个桌面条目文件 (fileName.desktop)
[Desktop Entry]
Name= app_name
Comment= comment_optional
Icon= app_icon
Exec= your file path
Terminal=false
Type=Application
将其保存在
/.config/autostart/
或 /etc/xdg/autostart/
然后该文件将在系统启动时自动运行。
我不认为你可以在 Linux 中以编程方式在启动时启动应用程序
替代方法是
添加启动脚本,在您登录时启动应用程序
创建一个 systemd 服务文件,该文件将在启动期间启动应用程序
https://www.howtoing.com/auto-execute-linux-scripts-during-reboot-or-startup/amp/
此站点提供了创建脚本的示例(https://developer.toradex.com/knowledge-base/how-to-autorun-application-at-the-start-up-in-linux#LXSession_Autostart_File )
此站点提供了在电子中创建文件的示例(https://ourcodeworld.com/articles/read/106/how-to-choose-read-save-delete-or-create-a-file-with-electron -框架)
首次安装时,您可以通过 Electron 应用手动创建一个文件,然后将脚本内容写入该文件
喜欢
file.create(/etc/xdg/autostart/.desktop)
file.write("[桌面条目]
名称=LXTerminal
类型=应用
执行=lxterminal
终端=假 ”)
或者你可以使用 https://www.npmjs.com/package/auto-launch
如果您仍然遇到问题,那么您可以通过自动启动模块并在代码中实现自动启动部分
刚刚遇到同样的问题。
用下一段代码解决了它。
它仅适用于 APPIMAGE,如果您需要它作为独立解决方案,您可以使用 `constexecutablePath = app.getPath('exe') 作为文件路径。
import createDesktopShortcut from "create-desktop-shortcuts";
// ...
if (os.platform() == "linux" && process.env.APPIMAGE) {
const shortcutsCreated = createDesktopShortcut({
linux: {
filePath: process.env.APPIMAGE,
name: APP_NAME,
outputPath: "~/.config/autostart/"
},
});
}
我正在存储自动启动的桌面快捷方式...
另外,我认为如果您在运行时,您可以将图标复制到目标文件夹并链接到它们