电子自动启动打包的应用程序将启动欢迎窗口

时间:2018-09-04 12:28:42

标签: javascript node.js electron electron-packager

我正在开发用于Windows的电子测试应用程序。

目标是创建一个自动启动的应用程序,该应用程序每次Windows用户登录时都会显示弹出消息。

场景:

  1. 我正在执行npm start来打包我的代码。 (index.js + package.json)
  2. 我执行生成的.exe,它将弹出我的消息。 (到目前为止一切都很好,对吧?)
  3. 我从Windows中退出(CTRL + L ALT + DEL,如果这很重要),然后再次登录以测试应用程序。
  4. 将打开弹出窗口,但默认的电子欢迎页面也将打开。

package.json

{
    "name": "test",
    "description": "",
    "version": "0.0.1",
    "main": "index.js",

    "scripts": {
        "test": "electron .",
        "start": "electron-packager . Test --platform=win32 --arch=x64 --overwrite"
    },

    "author": "",
    "license": "MIT",

    "build": {
        "appId": "com.test.test",
        "win": {
          "target": "NSIS"
        }
    },

    "dependencies": {
        "auto-launch": "^5.0.5"
    },

    "devDependencies": {
        "electron": "latest",
        "electron-packager": "^12.1.1"
    }
}

index.js

const {app, dialog} = require("electron");
const AutoLaunch = require("auto-launch");

app.on("ready", function(){
  dialog.showMessageBox({ message: "We are ready to take off! :-)", buttons: ["OK"] });

  let autoLaunch = new AutoLaunch({
    name: "test"
    // path: app.getPath("exe")
  }).isEnabled().then((isEnabled) => {
    if (!isEnabled){
            autoLaunch.enable();
            dialog.showMessageBox({ message: "AutoLaunch enabled.", buttons: ["OK"] });
    }
    else dialog.showMessageBox({ message: "AutoLaunch already enabled.", buttons: ["OK"] });
  });

  app.quit();
});

编辑:发现了一个问题,该问题阻止了package.json的更新。简单的npm info导致了完全意外的输出。

1 个答案:

答案 0 :(得分:0)

哇,完全忘记了这个问题。 解决方案如下:

更新所有依赖项。 确保.html / .js文件的路径是绝对正确的。

绝对路径以/开头 例如/files/index.html

就是这样!