2
2
mirror of https://github.com/Llewellynvdm/nativefier.git synced 2024-11-16 01:37:07 +00:00

Implemented mac app badge through listening for webview title changes

This commit is contained in:
Jia Hao 2015-07-06 09:38:04 +08:00
parent c1509e30d9
commit 199b1423e5
2 changed files with 22 additions and 6 deletions

View File

@ -22,6 +22,12 @@ ipc.on('params', function(message) {
require('shell').openExternal(e.url); require('shell').openExternal(e.url);
}); });
// We check for desktop notifications by listening to a title change in the webview
// Not elegant, but it will have to do
webView.addEventListener('page-title-set', function(event) {
ipc.send('notification-message', 'TITLE_CHANGED');
});
var webViewDiv = document.getElementById('webViewDiv'); var webViewDiv = document.getElementById('webViewDiv');
webViewDiv.appendChild(webView); webViewDiv.appendChild(webView);
@ -49,8 +55,5 @@ ipc.on('params', function(message) {
var webView = document.getElementById('webView'); var webView = document.getElementById('webView');
webView.undo(); webView.undo();
}); });
}); });

View File

@ -2,10 +2,10 @@
* Created by JiaHao on 4/7/15. * Created by JiaHao on 4/7/15.
*/ */
var app = require('app'); var app = require('app');
var fs = require('fs'); var fs = require('fs');
var BrowserWindow = require('browser-window'); var BrowserWindow = require('browser-window');
var ipc = require('ipc');
const APP_ARGS_FILE_PATH = __dirname + '/targetUrl.txt'; const APP_ARGS_FILE_PATH = __dirname + '/targetUrl.txt';
require('crash-reporter').start(); require('crash-reporter').start();
@ -31,7 +31,7 @@ app.on('ready', function() {
); );
mainWindow.loadUrl('file://' + __dirname + '/index.html'); mainWindow.loadUrl('file://' + __dirname + '/index.html');
//mainWindow.openDevTools(); mainWindow.openDevTools();
mainWindow.webContents.on('did-finish-load', function() { mainWindow.webContents.on('did-finish-load', function() {
fs.readFile(APP_ARGS_FILE_PATH, 'utf8', function (error, data) { fs.readFile(APP_ARGS_FILE_PATH, 'utf8', function (error, data) {
if (error) { if (error) {
@ -45,9 +45,22 @@ app.on('ready', function() {
}) })
}); });
// if the window is focused, clear the badge
mainWindow.on('focus', function () {
app.dock.setBadge('');
});
mainWindow.on('closed', function() { mainWindow.on('closed', function() {
mainWindow = null; mainWindow = null;
}) });
});
// listen for a notification message
ipc.on('notification-message', function(event, arg) {
console.log(arg); // prints "ping"
if (arg === 'TITLE_CHANGED') {
if (!mainWindow.isFocused()) {
app.dock.setBadge('●');
}
}
}); });