Had*_*asi 3 node.js npm electron
我的应用程序是电子,BrowserWindow加载本地页面 index.html。
我调用npm run start一个脚本来运行electron main.js,应用程序打开并加载 html。
我可以向脚本添加一个参数来将不同的 html 文件加载到BrowserWindow.
在 main.js 文件中,代码是:
function createWindow () {
// Create the browser window.
mainWindow = new BrowserWindow({
webPreferences:{
webSecurity:false
},
fullscreen : false });//, alwaysOnTop : true , kiosk : true })
mainWindow.setMenu(null);
// and load the index.html of the app.
let url = `file://${__dirname}/index.html`; \\ index.html should be determined by argument passed at start.
mainWindow.loadURL(url,loadOptions);
// Open the DevTools.
mainWindow.webContents.openDevTools();
// Emitted when the window is closed.
mainWindow.on('closed', function () {
// Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
mainWindow = null;
});
}
Run Code Online (Sandbox Code Playgroud)
将命令行参数传递给电子应用程序:
./node_modules/.bin/electron main.js --arg1=value --arg2=value
Run Code Online (Sandbox Code Playgroud)
它可以在main.js 中像这样检索:
import { app } from "electron";
app.commandLine.getSwitchValue("arg1");
app.commandLine.getSwitchValue("arg2");
Run Code Online (Sandbox Code Playgroud)
传递参数的方式是相同的,你唯一需要注意的是电子的路径。在package.json其书面npm开始将执行electron main.js。因此,您必须显式执行此命令并使用“电子的正确路径”传递参数,即./node_modules/.bin/electron。那么命令将是
./node_modules/.bin/electron main.js argv1 argv2
Run Code Online (Sandbox Code Playgroud)
您可以通过process.argv以下方式访问这些参数main.js
如果希望您在应用程序中访问这些参数,则需要执行以下操作:
1.在你的main.js中定义一个变量,例如
global.sharedObject = {prop1: process.argv}
Run Code Online (Sandbox Code Playgroud)
2.在您的应用程序中只需包含遥控器并使用它sharedObject
var remote = require('electron').remote,
arguments = remote.getGlobal('sharedObject').prop1;
console.log(arguments);
Run Code Online (Sandbox Code Playgroud)
3.输出将是["argv1", "argv2"]
来源:https ://discuss.atom.io/t/how-to-pass-command-arguments-in-electron/17247
| 归档时间: |
|
| 查看次数: |
15968 次 |
| 最近记录: |