我已经写了电子应用程序的一部分。实际上,我使用子进程将PHP连接到Electron。 (main.js文件的代码可以在我的问题的底部找到,以保持一切清晰。)
当我使用
启动Electron应用程序时electron ./main.js
一切正常:PHP文件正常执行。但是,这不是我想要的。我希望能够打包我的应用程序,起诉
electron-packager --electron-version=2.0.2 . --platform=win32 --arch=x64
执行该命令不会出错。一切顺利,所有需要的文件都被coppied到子目录。但是,当我执行创建的.exe文件时,它没有显示任何有用的东西。只有空白页。
有人可以帮助我并给我一些可以帮助我更进一步的资源吗?我已经在网上搜索了一个解决方案,我在Electron SLACK频道聊天,但我没有得到答案。在Slack上,因为我没有足够快地回答,因为我很忙...而且我在网上找不到任何有用的东西。
我希望这里有人可以给我一些小技巧,以便我可以向更好的方向搜索。
现在,正如承诺的那样.main.js文件的代码:
const {app, BrowserWindow} = require('electron');
const url = require('url');
let window;
function createWindow()
{
const { execFile } = require('child_process');
const child = execFile('php/php.exe', ['-S', '127.0.0.1:4911', '-t',
'./www'], (error, stderr, stdout) => {
if (error) { console.log(error); }
if (stderr) { console.log(stderr); }
});
window = new BrowserWindow({width: 800, height: 600});
window.loadURL(url.format({
pathname: 'localhost:4911',
protocol: 'http:',
slashes: true
}));
window.on('closed', () => {
window = null;
});
}
app.on('ready', createWindow);
app.on('winow-all-closed', () => {
if(process.platform !== "darwin") {
app.quit();
}
});
app.on('activate', () => {
if(window == null) {
createWindow();
}
});
./www.index.php文件的内容,child_process链接的位置如下:
<?php
phpinfo();
?>
(注意:此文件适用于包装)