|
const {app, BrowserWindow} = require('electron') |
|
const path = require('path') |
|
const url = require('url') |
|
|
|
// Keep a global reference of the window object, if you don't, the window will |
|
// be closed automatically when the JavaScript object is garbage collected. |
|
let win |
|
let child |
|
let contents |
|
|
|
let ipc = require('electron').ipcMain; |
|
|
|
ipc.on('invokeAction', function(event, data){ |
|
console.log(" app.js: ipc on invoke action "); |
|
var result = "ThisIsResult From app.js" |
|
+ " ( Time=" + get_datetime_str() + ")"; |
|
//var result = processData(data); |
|
event.sender.send('actionReply', result); |
|
console.log("app.js : send return " + result ); |
|
}); |
|
|
|
|
|
function createWindow () { |
|
// Create the browser window. |
|
var win_config = {width: 800, height: 450 |
|
, backgroundColor: '#cefcc9' |
|
}; |
|
win = new BrowserWindow(win_config) |
|
|
|
var child_config = {width: 700, height: 200 , parent : win |
|
, modal: false , show: false |
|
} |
|
child = new BrowserWindow( child_config ) |
|
child.loadURL('https://github.com') |
|
|
|
// and load the index.html of the app. |
|
win.loadURL('file://' + __dirname + '/index.html'); |
|
|
|
|
|
// Open the DevTools. |
|
// win.webContents.openDevTools() |
|
contents = win.webContents ; |
|
|
|
win.on('ready-to-show', (e,cmd) => { |
|
console.log ("ev: ready-to-show"); |
|
// console.log(" contents = [" + contents + "]" ); |
|
}) |
|
|
|
win.on('click', () => { |
|
console.log('ev: click ' ); |
|
child.show() |
|
}); |
|
|
|
win.on('move', (e, cmd) => { |
|
var xy = win.getPosition() |
|
// console.log("ev: move " + xy[0] + "," + xy[1] ); |
|
}); |
|
|
|
|
|
// Emitted when the window is closed. |
|
win.on('closed', () => { |
|
// 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. |
|
win = null |
|
}) |
|
|
|
//============================================ |
|
// contents |
|
contents.on('dom-ready',()=> { |
|
console.log("ev: dom-ready"); |
|
}); |
|
} |
|
|
|
// This method will be called when Electron has finished |
|
// initialization and is ready to create browser windows. |
|
// Some APIs can only be used after this event occurs. |
|
app.on('ready', createWindow) |
|
|
|
app.once('ready-to-show' , () => { |
|
win.show() |
|
}) |
|
|
|
// Quit when all windows are closed. |
|
app.on('window-all-closed', () => { |
|
// On macOS it is common for applications and their menu bar |
|
// to stay active until the user quits explicitly with Cmd + Q |
|
if (process.platform !== 'darwin') { |
|
app.quit() |
|
} |
|
}) |
|
|
|
app.on('activate', () => { |
|
// On macOS it's common to re-create a window in the app when the |
|
// dock icon is clicked and there are no other windows open. |
|
if (win === null) { |
|
createWindow() |
|
} |
|
}) |
|
|
|
// REF : http://stackoverflow.com/questions/10645994/node-js-how-to-format-a-date-string-in-utc |
|
function get_datetime_str(){ |
|
var str1 = new Date().toISOString(). |
|
replace(/T/, ' '). // replace T with a space |
|
replace(/\..+/, '') // delete the dot and everything after |
|
return str1 ; |
|
} |
|
|
|
|
|
// In this file you can include the rest of your app's specific main process |
|
// code. You can also put them in separate files and require them here. |