mirror of
https://github.com/Llewellynvdm/nativefier.git
synced 2024-12-23 02:28:55 +00:00
Updated to support setting of window dimensions using the cli, and updated documentation
This commit is contained in:
parent
3b815dd1ba
commit
4ddf10a108
13
README.md
13
README.md
@ -63,11 +63,17 @@ version-string should contain a hash of the application metadata to be embed
|
|||||||
- ProductName
|
- ProductName
|
||||||
- InternalName
|
- InternalName
|
||||||
badge if the target app should show badges in the OSX dock on receipt of desktop notifications
|
badge if the target app should show badges in the OSX dock on receipt of desktop notifications
|
||||||
|
width window width (default=1280)
|
||||||
|
height window height (default=800)
|
||||||
```
|
```
|
||||||
|
|
||||||
See [electron-packager](https://github.com/maxogden/electron-packager) for more details.
|
See [electron-packager](https://github.com/maxogden/electron-packager) for more details.
|
||||||
|
### Icon
|
||||||
|
On OSX, the icon parameter should be a path to an `.icns` file. [iConvertIcons](https://iconverticons.com/online/) can be used to convert `.pngs`, though it can be quite cumbersome.
|
||||||
|
|
||||||
#### OSX Dock Badge
|
To retrieve the `.icns` file from the downloaded file, extract it first and press File > Get Info. Then select the icon in the top left corner of the info window and press `⌘-C`. Open Preview and press File > New from clipboard and save the `.icns` file. It took me a while to figure out how to do that and question why a `.icns` file was not simply provided in the downloaded archive.
|
||||||
|
|
||||||
|
### OSX Dock Badge
|
||||||
|
|
||||||
On OSX, it is desired for the App dock icon to show a badge on the receipt of a desktop notification.
|
On OSX, it is desired for the App dock icon to show a badge on the receipt of a desktop notification.
|
||||||
|
|
||||||
@ -91,7 +97,6 @@ Creating an native wrapper for Facebook Messenger with the following arguments:
|
|||||||
$ nativefier Messenger http://messenger.com --platform=darwin --arch=x64 --version=0.29.1 --overwrite --badge
|
$ nativefier Messenger http://messenger.com --platform=darwin --arch=x64 --version=0.29.1 --overwrite --badge
|
||||||
```
|
```
|
||||||
|
|
||||||
## Todo
|
## Issues
|
||||||
|
|
||||||
- Set the app icon from a url in the CLI
|
- Better workaround for desktop notifications and OSX dock badges
|
||||||
- Set the app window dimensions from the CLI
|
|
@ -15,8 +15,8 @@ ipc.on('params', function(message) {
|
|||||||
webView.setAttribute('id', 'webView');
|
webView.setAttribute('id', 'webView');
|
||||||
webView.setAttribute('src', appArgs.targetUrl);
|
webView.setAttribute('src', appArgs.targetUrl);
|
||||||
webView.setAttribute('autosize', 'on');
|
webView.setAttribute('autosize', 'on');
|
||||||
webView.setAttribute('minwidth', '600');
|
webView.setAttribute('minwidth', '100');
|
||||||
webView.setAttribute('minheight', '800');
|
webView.setAttribute('minheight', '100');
|
||||||
|
|
||||||
webView.addEventListener('new-window', function(e) {
|
webView.addEventListener('new-window', function(e) {
|
||||||
require('shell').openExternal(e.url);
|
require('shell').openExternal(e.url);
|
||||||
|
16
app/main.js
16
app/main.js
@ -12,6 +12,8 @@ require('crash-reporter').start();
|
|||||||
|
|
||||||
var mainWindow = null;
|
var mainWindow = null;
|
||||||
|
|
||||||
|
var appArgs = JSON.parse(fs.readFileSync(APP_ARGS_FILE_PATH, 'utf8'));
|
||||||
|
|
||||||
app.on('window-all-closed', function() {
|
app.on('window-all-closed', function() {
|
||||||
if (process.platform != 'darwin') {
|
if (process.platform != 'darwin') {
|
||||||
app.quit();
|
app.quit();
|
||||||
@ -21,8 +23,8 @@ app.on('window-all-closed', function() {
|
|||||||
app.on('ready', function() {
|
app.on('ready', function() {
|
||||||
mainWindow = new BrowserWindow(
|
mainWindow = new BrowserWindow(
|
||||||
{
|
{
|
||||||
width: 1280,
|
width: appArgs.width || 1280,
|
||||||
height: 800,
|
height: appArgs.height || 800,
|
||||||
'web-preferences': {
|
'web-preferences': {
|
||||||
javascript: true,
|
javascript: true,
|
||||||
plugins: true,
|
plugins: true,
|
||||||
@ -33,16 +35,8 @@ app.on('ready', function() {
|
|||||||
|
|
||||||
//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) {
|
|
||||||
if (error) {
|
|
||||||
console.error('Error reading app config file: ' + error);
|
|
||||||
} else {
|
|
||||||
console.log(data);
|
|
||||||
mainWindow.webContents.send('params', data);
|
|
||||||
|
|
||||||
}
|
mainWindow.webContents.send('params', JSON.stringify(appArgs));
|
||||||
|
|
||||||
})
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// if the window is focused, clear the badge
|
// if the window is focused, clear the badge
|
||||||
|
2
cli.js
2
cli.js
@ -32,7 +32,7 @@ if (!validator.isURL(args.target)) {
|
|||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
tempDir(args.name, args.target, args.badge, function (error, appDir) {
|
tempDir(args.name, args.target, args.badge, args.width, args.height, function (error, appDir) {
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
|
@ -18,9 +18,12 @@ var ncp = require('ncp').ncp;
|
|||||||
*
|
*
|
||||||
* @param {string} name
|
* @param {string} name
|
||||||
* @param {string} targetURL
|
* @param {string} targetURL
|
||||||
|
* @param {boolean} badge
|
||||||
|
* @param width
|
||||||
|
* @param height
|
||||||
* @param {tempDirCallback} callback
|
* @param {tempDirCallback} callback
|
||||||
*/
|
*/
|
||||||
module.exports = function (name, targetURL, badge, callback) {
|
module.exports = function (name, targetURL, badge, width, height, callback) {
|
||||||
|
|
||||||
var tempDir = temp.path();
|
var tempDir = temp.path();
|
||||||
ncp(__dirname + '/app', tempDir, function (error) {
|
ncp(__dirname + '/app', tempDir, function (error) {
|
||||||
@ -33,7 +36,9 @@ module.exports = function (name, targetURL, badge, callback) {
|
|||||||
var appArgs = {
|
var appArgs = {
|
||||||
name: name,
|
name: name,
|
||||||
targetUrl: targetURL,
|
targetUrl: targetURL,
|
||||||
badge: badge
|
badge: badge,
|
||||||
|
width: width,
|
||||||
|
height: height
|
||||||
};
|
};
|
||||||
|
|
||||||
fs.writeFileSync(tempDir + '/targetUrl.txt', JSON.stringify(appArgs));
|
fs.writeFileSync(tempDir + '/targetUrl.txt', JSON.stringify(appArgs));
|
||||||
|
@ -36,3 +36,5 @@ version-string should contain a hash of the application metadata to be embed
|
|||||||
- ProductName
|
- ProductName
|
||||||
- InternalName
|
- InternalName
|
||||||
badge if the target app should show badges in the OSX dock on receipt of desktop notifications
|
badge if the target app should show badges in the OSX dock on receipt of desktop notifications
|
||||||
|
width window width (default=1280)
|
||||||
|
height window height (default=800)
|
Loading…
Reference in New Issue
Block a user