如何检测到 Electron 应用程序第一次运行?

Posted

技术标签:

【中文标题】如何检测到 Electron 应用程序第一次运行?【英文标题】:How to detect that the Electron app is running for the first time? 【发布时间】:2017-09-28 10:24:32 【问题描述】:

我正在使用最新版本的 Electron-builder(使用 AutoUpadate)开发应用程序。

有什么方法可以知道App安装后第一次运行吗?

Ps:我尝试过使用electron-config,但是卸载后用户数据文件没有被删除,每次安装都需要做一些事情(即使是在同一台机器上)。

【问题讨论】:

【参考方案1】:

检查 squirrel-firstrun 标志:

var cmd = process.argv[1];

if (cmd == '--squirrel-firstrun') 
    // Running for the first time.

(您无需安装任何东西即可使用)

Ref.

【讨论】:

是的,我在电子应用程序中使用它 这似乎是 Windows 独有的东西。这种方法在 macOS 和 Linux 下有效吗? @astoilkov 我从未在 macOS 或 Linux 上尝试过,但很可能这仅适用于 Windows。【参考方案2】:

如果它不存在,您的应用可以写入一个文件夹/文件(文件名基于时间戳?)。

当应用程序启动时,始终查找文件。 如果没有文件,意味着它是第一次,做你想做的,写文件。

如果有文件意味着它不是第一次。


不知道 Electron API 有没有什么问题!

【讨论】:

但是如果我卸载应用程序,那些文件不会被删除,所以,如果用户重新安装应用程序,我会得到一个错误的检查。 (因为文件会存在) 我不知道,但是您可以安装一个应用程序,检查其文件夹结构,然后卸载并重新检查文件夹结构。看看哪个文件夹不见了!然后在这样的文件夹中写入您的文件!应用更改并检查..希望它有所帮助!

以上是关于如何检测到 Electron 应用程序第一次运行?的主要内容,如果未能解决你的问题,请参考以下文章

使用 electron-builder NSIS 安装程序安装后运行时如何传递命令行参数

如何防止Electron app中断macOS系统关机?

如何在docker中运行electron

electron在win上可运行后,如何打包到linux上运行?

如何解决 Vue.js devtools 在 Electron Vue 项目中不起作用的问题?

如何检测HDMI设备是否与Node JS连接?