我有一个用于 win .exe 和安装程序的电子构建文件,但图标不是我的。在我的 main.js 文件中,我有附加图标的代码,但我只能让它在 createWindow 函数内工作。在函数之外,我收到一条错误消息。.exe 将运行并且我得到我的图标,但我这样做时出错;安装程序根本无法工作。我已经尝试过几个教程,但没有一个能解决这个问题。
主文件
const {app, BrowserWindow, Tray} = require('electron')
const path = require('path')
const url = require('url')
let win
function createWindow () {
const appIcon = new Tray('icon/app.png')
win = new BrowserWindow({ width: 1920, height: 1080, icon: 'icon/app.ico' })
console.log(appIcon, win)
win.loadURL(url.format({
pathname: path.join(__dirname, 'app/app.html'),
protocol: 'file:',
slashes: true
}))
win.on('closed', () => {
win = null
})
}
app.on('ready', createWindow)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
}) …Run Code Online (Sandbox Code Playgroud) 我正在使用最新版本的Electron-builder(使用AutoUpadate)开发应用程序.
有没有办法知道应用程序在安装后第一次运行?
Ps:我尝试过使用electron-config,但卸载后不会删除用户数据文件,我需要对每次安装都做一些事情(即使它在同一台机器上).
嗨,我是电子新手,想知道如何在应用程序安装过程中为应用程序注册自定义协议。
我正在使用电子构建器来构建应用程序。这是构建构建代码
"build": {
"appId": "com.test.testapp",
"productName": "testapp",
"asar": true,
"protocols": [{
"name": "testapp",
"schemes": [ "testapp" ]
}],
"nsis": {
"oneClick": false,
"perMachine": true,
"allowToChangeInstallationDirectory": true,
"runAfterFinish": false,
"createDesktopShortcut": true
},
"squirrelWindows": {
"msi": true
},
"directories": {
"output": "distribution"
}
Run Code Online (Sandbox Code Playgroud)
我知道通过添加以下行注册自定义协议
app.setAsDefaultProtocolClient("testapp");
Run Code Online (Sandbox Code Playgroud)
但只有在我至少第一次运行该应用程序时才有效。
我不想要的是不能保证用户会在安装后启动应用程序。
那么有没有一种方法可以使用电子生成器在安装过程中注册自定义协议
我有一个最小的电子应用程序,我正在尝试构建它(它运行良好)。我的 package.json 是
"main": "main.js",
"scripts": {
"start": "electron -r babel-register .",
"package": "build --dir",
"postinstall": "electron-builder install-app-deps"
},
// dependencies
"build": {
"appId": "com.karmadust.mancuspianconvert",
"files": [
"node_modules/**/*"
],
"directories": {
"buildResources": "assets"
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行时,npm run package我得到:
Application entry file "main.js" in the "[path-to-project]/dist/mac/myapp.app/Contents/Resources/app.asar" does not exist. Seems like a wrong configuration.
Run Code Online (Sandbox Code Playgroud) 一段时间以来,我一直在尝试调试我们的电子应用程序的问题,但这正成为一个难题。
问题:间歇性地,当使用退出快捷方式 ( cmd+Q ) 时,应用程序 UI 成功消失,但它停留在菜单栏 (mac)/通知 try(win) 中,并在悬停时显示死亡沙滩球。
而且我必须去活动监视器来实际强制关闭它 应用程序没有响应
这只发生在打包的生产应用程序中,而不是在开发模式下。在查看日志时,似乎所有退出事件都被正确命中。
app.on('window-all-closed', () => {
log.info('All windows closed');
if (process.platform != 'darwin') {
app.quit();
}
});
// Logs to help nail down quit failures
app.on('will-quit', () => log.info('App will quit'));
app.on('quit', () => log.info('App is quitting'));
app.on('before-quit', async () => {
log.info('Attempting to quit app');
}
Run Code Online (Sandbox Code Playgroud)
log.log 的尾部
[2019-02-04 14:29:34.543] [info] electron: message received: windows-info
[2019-02-04 14:29:35.831] [info] Attempting to quit app
[2019-02-04 14:29:35.919] [info] stopping mouse …Run Code Online (Sandbox Code Playgroud) 我们公司正计划购买EV证书进行代码签名。我们有应该执行签名的自动构建,但从我们读到的内容来看,持续集成工具将无法工作,因为证书带有硬件加密狗。我已经看到了解决方法,但其中大多数需要 Windows 机器或脚本来签署应用程序。感觉很像黑客。
拥有许多产品的公司如何签署他们的应用程序,他们不能手工完成,是吗?
有哪些工具可以使流程自动化?我的意思是应该有一些带有 API 的软件,您可以在其中传递文件,然后它会返回这些文件的签名版本。或者可以将构建过程分成多台机器或容器的东西。
你们是怎么做的?我们正在为 Windows/macOS 构建应用程序。
我是electronjs的新手。我想将 angular 应用程序转换为桌面。我可以成功实现它,但问题是应用程序图标设置为默认电子而不是我提供的图标,如下所示:
win = new BrowserWindow({
width: 600,
height: 670,
icon: `${__dirname}/dist/assets/imgs/logo.png`
})
Run Code Online (Sandbox Code Playgroud)
我在使用资源黑客构建应用程序后更改了图标,但我需要的是在构建时以正确的方式更改它。我错过了什么>
早上好,
我在 Vue JS 中创建了一个程序,它与我在 main.js 文件中创建的 API 连接以执行系统命令。
我遇到的问题是,在使用电子编译生产时,出现以下错误:
我使用命令 npm run electron: build
当我使用 npm run electron:serve 工作时没有问题
任何人都知道为什么会出现错误以及如何修复它?谢谢
我在使用电子生成器时遇到问题我在控制台中有空白页面和错误:
Not allowed to load local resource: file:///C:/Users/emretekince/Desktop/DCSLogBook/client/dist/win-unpacked/resources/app.asar/build/index.html
Run Code Online (Sandbox Code Playgroud)
main.js
const startUrl = process.env.ELECTRON_START_URL || url.format({
pathname: path.join(__dirname, '/build/index.html'),
protocol: 'file:',
slashes: true
});
mainWindow.loadURL(startUrl);
Run Code Online (Sandbox Code Playgroud) 我制作了一个简单的“hello world”类型的 Electron 应用程序。双击exe文件后,它根本不打开任何窗口。只是 Windows 任务管理器中显示的线程。我尝试调试主线程js。但它没有显示任何错误。如果我运行开发模式,它就可以工作(cli:电子 main.js)。
环境:Windows 7、x64
构建命令:电子构建器
electron-builder ×10
electron ×9
node.js ×2
angular ×1
certificate ×1
code-signing ×1
freeze ×1
javascript ×1
reactjs ×1
vue.js ×1