mirror of
https://github.com/Llewellynvdm/nativefier.git
synced 2025-01-24 07:38:36 +00:00
Implement setting of user agent to fix #8
This commit is contained in:
parent
fb4a99a872
commit
48345eceb5
24
README.md
24
README.md
@ -53,7 +53,7 @@ Specifies the destination directory to build the app to, defaults to the current
|
|||||||
|
|
||||||
Prints the usage information.
|
Prints the usage information.
|
||||||
|
|
||||||
#### [App Name]
|
#### [app-name]
|
||||||
|
|
||||||
```
|
```
|
||||||
-n, --app-name <value>
|
-n, --app-name <value>
|
||||||
@ -68,15 +68,15 @@ The name of the application, which will affect strings in titles and the icon.
|
|||||||
```
|
```
|
||||||
Automatically determined based on the current OS. Can be overwritten by specifying either `linux`, `win32`, or `darwin`.
|
Automatically determined based on the current OS. Can be overwritten by specifying either `linux`, `win32`, or `darwin`.
|
||||||
|
|
||||||
#### [architecture]
|
#### [arch]
|
||||||
|
|
||||||
```
|
```
|
||||||
-a, --arch <value>
|
-a, --arch <value>
|
||||||
```
|
```
|
||||||
|
|
||||||
Automatically determined based on the current OS. Can be overwritten by specifying either `ia32` or `x64`.
|
Processor architecture, automatically determined based on the current OS. Can be overwritten by specifying either `ia32` or `x64`.
|
||||||
|
|
||||||
#### [Electron Version]
|
#### [electron-version]
|
||||||
|
|
||||||
```
|
```
|
||||||
-e, --electron-version <value>
|
-e, --electron-version <value>
|
||||||
@ -85,7 +85,7 @@ Automatically determined based on the current OS. Can be overwritten by specifyi
|
|||||||
Electron version without the `v`, see https://github.com/atom/electron/releases.
|
Electron version without the `v`, see https://github.com/atom/electron/releases.
|
||||||
|
|
||||||
|
|
||||||
#### [Overwrite]
|
#### [overwrite]
|
||||||
|
|
||||||
```
|
```
|
||||||
-o, --overwrite
|
-o, --overwrite
|
||||||
@ -93,7 +93,7 @@ Electron version without the `v`, see https://github.com/atom/electron/releases.
|
|||||||
|
|
||||||
Specifies if the destination directory should be overwritten.
|
Specifies if the destination directory should be overwritten.
|
||||||
|
|
||||||
#### [Conceal]
|
#### [conceal]
|
||||||
|
|
||||||
```
|
```
|
||||||
-c, --conceal
|
-c, --conceal
|
||||||
@ -101,7 +101,7 @@ Specifies if the destination directory should be overwritten.
|
|||||||
|
|
||||||
Specifies if the source code within the nativefied app should be packaged into an archive, defaults to false, [read more](http://electron.atom.io/docs/v0.36.0/tutorial/application-packaging/).
|
Specifies if the source code within the nativefied app should be packaged into an archive, defaults to false, [read more](http://electron.atom.io/docs/v0.36.0/tutorial/application-packaging/).
|
||||||
|
|
||||||
#### [Icon]
|
#### [icon]
|
||||||
|
|
||||||
```
|
```
|
||||||
-i, --icon <path>
|
-i, --icon <path>
|
||||||
@ -130,6 +130,7 @@ However, this would cause issues when the command line argument `target` is set
|
|||||||
```
|
```
|
||||||
|
|
||||||
Width of the packaged application, defaults to `1280px`.
|
Width of the packaged application, defaults to `1280px`.
|
||||||
|
|
||||||
#### [height]
|
#### [height]
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -138,6 +139,15 @@ Width of the packaged application, defaults to `1280px`.
|
|||||||
|
|
||||||
Height of the packaged application, defaults to `800px`.
|
Height of the packaged application, defaults to `800px`.
|
||||||
|
|
||||||
|
#### [user-agent]
|
||||||
|
|
||||||
|
```
|
||||||
|
-u, --user-agent <value>
|
||||||
|
```
|
||||||
|
|
||||||
|
Set the user agent to run the created app with.
|
||||||
|
|
||||||
|
|
||||||
## How It Works
|
## How It Works
|
||||||
|
|
||||||
A template app with the appropriate event listeners and callbacks set up is included in the `./app` folder. When the `nativefier` command is executed, this folder is copied to a temporary directory with the appropriate parameters in a configuration file, and is packaged into an app with [Electron Packager](https://github.com/maxogden/electron-packager).
|
A template app with the appropriate event listeners and callbacks set up is included in the `./app` folder. When the `nativefier` command is executed, this folder is copied to a temporary directory with the appropriate parameters in a configuration file, and is packaged into an app with [Electron Packager](https://github.com/maxogden/electron-packager).
|
||||||
|
@ -33,11 +33,12 @@ app.on('ready', function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
mainWindow.loadUrl('file://' + __dirname + '/index.html');
|
|
||||||
|
mainWindow.loadUrl('file://' + __dirname + '/index.html', { userAgent: appArgs.userAgent});
|
||||||
|
|
||||||
//mainWindow.openDevTools();
|
//mainWindow.openDevTools();
|
||||||
mainWindow.webContents.on('did-finish-load', function() {
|
|
||||||
|
|
||||||
|
mainWindow.webContents.on('did-finish-load', function() {
|
||||||
mainWindow.webContents.send('params', JSON.stringify(appArgs));
|
mainWindow.webContents.send('params', JSON.stringify(appArgs));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ function buildApp(options, callback) {
|
|||||||
|
|
||||||
async.waterfall([
|
async.waterfall([
|
||||||
callback => {
|
callback => {
|
||||||
copyPlaceholderApp(options.dir, tmpPath, options.name, options.targetUrl, options.badge, options.width, options.height, callback);
|
copyPlaceholderApp(options.dir, tmpPath, options.name, options.targetUrl, options.badge, options.width, options.height, options.userAgent, callback);
|
||||||
},
|
},
|
||||||
|
|
||||||
(tempDir, callback) => {
|
(tempDir, callback) => {
|
||||||
@ -58,11 +58,12 @@ function buildApp(options, callback) {
|
|||||||
* @param {string} name
|
* @param {string} name
|
||||||
* @param {string} targetURL
|
* @param {string} targetURL
|
||||||
* @param {boolean} badge
|
* @param {boolean} badge
|
||||||
* @param {number} [width]
|
* @param {number} width
|
||||||
* @param {number} [height]
|
* @param {number} height
|
||||||
|
* @param {string} userAgent
|
||||||
* @param {tempDirCallback} callback
|
* @param {tempDirCallback} callback
|
||||||
*/
|
*/
|
||||||
function copyPlaceholderApp(srcAppDir, tempDir, name, targetURL, badge, width, height, callback) {
|
function copyPlaceholderApp(srcAppDir, tempDir, name, targetURL, badge, width, height, userAgent, callback) {
|
||||||
copy(srcAppDir, tempDir, error => {
|
copy(srcAppDir, tempDir, error => {
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
@ -76,7 +77,8 @@ function copyPlaceholderApp(srcAppDir, tempDir, name, targetURL, badge, width, h
|
|||||||
targetUrl: targetURL,
|
targetUrl: targetURL,
|
||||||
badge: badge,
|
badge: badge,
|
||||||
width: width,
|
width: width,
|
||||||
height: height
|
height: height,
|
||||||
|
userAgent: userAgent
|
||||||
};
|
};
|
||||||
|
|
||||||
fs.writeFileSync(path.join(tempDir, '/targetUrl.txt'), JSON.stringify(appArgs));
|
fs.writeFileSync(path.join(tempDir, '/targetUrl.txt'), JSON.stringify(appArgs));
|
||||||
|
@ -25,7 +25,9 @@ function main(program) {
|
|||||||
program.icon,
|
program.icon,
|
||||||
program.badge,
|
program.badge,
|
||||||
program.width,
|
program.width,
|
||||||
program.height, callback);
|
program.height,
|
||||||
|
program.userAgent,
|
||||||
|
callback);
|
||||||
},
|
},
|
||||||
|
|
||||||
(options, callback) => {
|
(options, callback) => {
|
||||||
@ -59,6 +61,7 @@ if (require.main === module) {
|
|||||||
.option('-i, --icon <value>', 'the icon file to use as the icon for the app (should be a .icns file on OSX)')
|
.option('-i, --icon <value>', 'the icon file to use as the icon for the app (should be a .icns file on OSX)')
|
||||||
.option('-w, --width <value>', 'set window width, defaults to 1280px', parseInt)
|
.option('-w, --width <value>', 'set window width, defaults to 1280px', parseInt)
|
||||||
.option('-h, --height <value>', 'set window height, defaults to 800px', parseInt)
|
.option('-h, --height <value>', 'set window height, defaults to 800px', parseInt)
|
||||||
|
.option('-u, --user-agent <value>', 'set the user agent string for the app')
|
||||||
.parse(process.argv);
|
.parse(process.argv);
|
||||||
|
|
||||||
if (!process.argv.slice(2).length) {
|
if (!process.argv.slice(2).length) {
|
||||||
|
@ -20,7 +20,9 @@ function optionsFactory(name,
|
|||||||
icon,
|
icon,
|
||||||
badge = false,
|
badge = false,
|
||||||
width = 1280,
|
width = 1280,
|
||||||
height = 800, callback) {
|
height = 800,
|
||||||
|
userAgent,
|
||||||
|
callback) {
|
||||||
|
|
||||||
if (!validator.isURL(targetUrl, {require_protocol: true})) {
|
if (!validator.isURL(targetUrl, {require_protocol: true})) {
|
||||||
throw `Your Url ${targetUrl} is invalid!, did you remember to include 'http://'?`;
|
throw `Your Url ${targetUrl} is invalid!, did you remember to include 'http://'?`;
|
||||||
@ -54,7 +56,8 @@ function optionsFactory(name,
|
|||||||
// app configuration
|
// app configuration
|
||||||
badge: badge,
|
badge: badge,
|
||||||
width: width,
|
width: width,
|
||||||
height: height
|
height: height,
|
||||||
|
userAgent: userAgent
|
||||||
};
|
};
|
||||||
|
|
||||||
if (name && name.length > 0) {
|
if (name && name.length > 0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user