本节主要介绍Native UI API 的 App使用,APP类别的API 是针对当前正在运行的应用程序实例,即获取应用的相关信息,启动应用时的传参及应用运行过程中的底层控制等。
// Load native UI library
var gui = require('nw.gui');
// Print arguments
console.log(gui.App.argv);
// Quit current app
gui.App.quit();
// Get the name field in manifest
gui.App.manifest.name
当启动应用时获得命令行参数。
在命令行启动程序:
运行结果如下:
fullArgv
获取所有命令行参数,博主暂时也不太理解,原文解释如下:
Get all the command line arguments when starting the app. Because node-webkit itself used switches like --no-sandbox and --process-per-tab, it would confuse the app when the switches were meant to be given to node-webkit, so App.argv just filtered such switches (arguments' precedence were kept). You can get the switches to be filtered with App.filteredArgv.
dataPath
获取应用在用户机器上的数据存储地址。不懂的系统有不同的路径:
Windows: %LOCALAPPDATA%/
注
manifest
获取package.json中的配置信息
clearCache()
清除应用在磁盘和内存中的HTTP缓存
closeAllWindows()
关闭所有窗口,该方法会抛出close事件,用户可以监听colse事件阻止窗口关闭,如果用户不阻止该事件,则退出应用。如gui.Window.on('closed', function () { });
crashBrowser(), crashRenderer()
这两个方法是崩溃浏览器和崩溃渲染器,可以用来测试浏览器崩溃时数据转储的过程。
从node-webkit 0.8.0版本开始,如果应用崩溃,一个minidump 文件会被保存到磁盘,用以调试和寻找程序崩溃的原因。默认情况下,dump文件保存在系统的临时文件夹中,我们也可以通过api来设置dump文件的存放目录。以下是个版本系统的临时目录(转储目录):
Linux: /tmp
Windows: System temporary directory
Mac: ~/Library/Breakpad/product name (product name is defined in .plist file in the application bundle)
setCrashDumpDir(dir)
设置转储目录
getProxyForURL(url)
获得下载url地址时在DOM中使用的代理。返回值的格式和PAC相同(如“直接”,“本地:8080”)。
setProxyConfig(config)
设置代理配置。较复杂,详情请参考https://github.com/nwjs/nw.js/wiki/App
quit()
直接退出应用程序(不发出任何事件)。
addOriginAccessWhitelistEntry(sourceOrigin, destinationProtocol, destinationHost, allowDestinationSubdomains)
添加一个白名单。如允许HTTP重定向从github.com到你的应用程序的页面,使用这样的应用程序协议:
App.addOriginAccessWhitelistEntry('http://github.com/', 'app', 'myapp', true);
移除一个白名单。参数参考函数addOriginAccessWhitelistEntry。
registerGlobalHotKey(shortcut);
在系统上为应用注册快捷键。详细请参考https://github.com/nwjs/nw.js/wiki/Shortcut
// Load native UI library.
var gui = require('nw.gui');
var option = {
key : "Ctrl+Shift+A",
active : function() {
console.log("Global desktop keyboard shortcut: " + this.key + " active.");
},
failed : function(msg) {
// :(, fail to register the |key| or couldn't parse the |key|.
console.log(msg);
}
};
// Create a shortcut with |option|.
var shortcut = new gui.Shortcut(option);
// Register global desktop shortcut, which can work without focus.
gui.App.registerGlobalHotKey(shortcut);
// If register |shortcut| successfully and user struck "Ctrl+Shift+A", |shortcut|
// will get an "active" event.
// You can also add listener to shortcut's active and failed event.
shortcut.on('active', function() {
console.log("Global desktop keyboard shortcut: " + this.key + " active.");
});
shortcut.on('failed', function(msg) {
console.log(msg);
});
// Unregister the global desktop shortcut.
gui.App.unregisterGlobalHotKey(shortcut);
移除系统快捷键。