Nativefier/app/assets/js/index.js

61 lines
1.7 KiB
JavaScript
Raw Normal View History

2015-07-05 08:08:13 +02:00
/**
* Created by JiaHao on 5/7/15.
*/
var ipc = require('electron').ipcRenderer;
2015-07-05 08:08:13 +02:00
var webViewDiv = document.getElementById('webViewDiv');
webViewDiv.style.visibility = 'hidden';
var webView;
ipc.on('params', function (event, message) {
2015-07-05 08:08:13 +02:00
var appArgs = JSON.parse(message);
document.title = appArgs.name;
webView = document.createElement('webview');
webView.setAttribute('id', 'webView');
2015-07-05 08:08:13 +02:00
webView.setAttribute('src', appArgs.targetUrl);
webView.setAttribute('autosize', 'on');
webView.setAttribute('minwidth', '100');
webView.setAttribute('minheight', '100');
2015-07-05 08:08:13 +02:00
webView.addEventListener('dom-ready', function () {
if (appArgs.userAgent) {
webView.setUserAgent(appArgs.userAgent);
}
});
webView.addEventListener('new-window', function (e) {
require('shell').openExternal(e.url);
});
2016-01-19 13:51:26 +01:00
webView.addEventListener('did-finish-load', function (e) {
webViewDiv.style.visibility = 'visible';
2016-01-19 13:51:26 +01:00
var loadingContainer = document.getElementById('loading-container');
loadingContainer.parentNode.removeChild(loadingContainer);
// We check for desktop notifications by listening to a title change in the webview
// Not elegant, but it will have to do
if (appArgs.badge) {
webView.addEventListener('page-title-set', function (event) {
ipc.send('notification-message', 'TITLE_CHANGED');
});
2016-01-19 13:51:26 +01:00
}
});
2015-07-05 08:08:13 +02:00
webViewDiv.appendChild(webView);
});
ipc.on('toggle-dev-tools', function (event, message) {
if (!message) {
return;
}
if (webView.isDevToolsOpened()) {
webView.closeDevTools();
} else {
webView.openDevTools();
}
});