App


App.argv

应用开始运行获取命令行参数 . 命令行参数中 , 一些是提供给NW.js使用的 , 应用本身并不会使用 . App.argv只返回应用关心的参数 , 其他的参数被过滤掉 . App.FilteredArgv返回被过滤掉部分的参数 . App.fullArgv返回所有命令行参数 .

App.fullArgv

应用开始运行获取所有命令行参数 . 返回内容包括NW.js使用的参数 , 比如--nwapp, --remote-debugging-port等 .

App.filteredArgv

App.argv被过滤掉的命令行参数 , 可以使用App.filteredArgv获取 . 默认 , 以下参数将会过滤掉:

[
  /^--url=/,
  /^--remote-debugging-port=/,
  /^--renderer-cmd-prefix=/,
  /^--nwapp=/
]

App.dataPath

获取应用数据使用文件路径 .

  • Windows: %LOCALAPPDATA%/<name>
  • Linux: ~/.config/<name>
  • OS X: ~/Library/Application Support/<name>/Default (0.12.3以及之前版本路径为~/Library/Application Support/<name>)

<name>package.json配置文件中的name属性 .

App.manifest

获取配置文件的JSON格式对象 .

App.clearCache()

清空HTTP内存以及磁盘中的缓存 . 该方法为异步方式调用 .

App.clearAppCache(manifest_url)

通过配置URL清空指定缓存 . 该方法为异步方式调用 .

App.closeAllWindows()

发送close事件给当前应用的所有窗口 . 如果没有阻塞close事件窗口 , 应用会在所有窗口关闭之后退出 . 使用该方法退出应用 , 所有窗口都有一次保存数据的机会 .

App.crashBrowser()

App.crashRenderer()

涉及崩溃机制使用的两个方法 , 参考崩溃机制特性 .

App.getProxyForURL(url)

  • url {String} 通过URL查询代理信息

通过DOM中加载的URL查询代理信息 . 返回结果格式与PAC相同 , 例如"DIRECT", "PROXY localhost:8080" .

App.setProxyConfig(config)

  • config {String} 配置代理

网页引擎将使用设置的代理配置请求网络资源 .

规则拷贝自net/proxy/proxy_config.h

    // 一个字符串解析规则说明代理使用方式 . 
    //
    //   proxy-uri = [<proxy-scheme>"://"]<proxy-host>[":"<proxy-port>]
    //
    //   proxy-uri-list = <proxy-uri>[","<proxy-uri-list>]
    //
    //   url-scheme = "http" | "https" | "ftp" | "socks"
    //
    //   scheme-proxies = [<url-scheme>"="]<proxy-uri-list>
    //
    //   proxy-rules = scheme-proxies[";"<scheme-proxies>]
    //
    // 因此 , 代理规则字符串应该通过分号分割有序的代理 , 应用到特定的URL协议 . 
    // 无特殊原因 , 代理协议默认为http . 
    //
    // Thus, the proxy-rules string should be a semicolon-separated list of
    // ordered proxies that apply to a particular URL scheme. Unless specified,
    // the proxy scheme for proxy-uris is assumed to be http.
    //
    // 特殊情况:
    //  * 代理列表第一个协议被删除 , 那么代理列表之后的协议都将被忽略 . 
    //  * 如果代理列表中的任意协议被删除 , 该列表中的其他协议不会被忽略 . 
    //  * 如果协议设置为'socks' , 那么所有协议都需要指定协议方式 , 如果没有指明将会认为`socks4://` . 
    //
    // For example:
    //   "http=foopy:80;ftp=foopy2"  -- http的URL使用HTTP代理"foopy:80" , ftp的URL使用HTTP代理"foopy2" . 
    //   "foopy:80"                  -- 所有URL使用HTTP代理"foopy:80" . 
    //   "foopy:80,bar,direct://"    -- 所有URL使用HTTP代理"foopy:80" , "foopy:80"不可用使用"bar" , 直至没有可用代理为止 . 
    //   "socks4://foopy"            -- 所有URL使用SOCKS v4代理"foopy:1080"
    //   "http=foop,socks5://bar.com -- http的URL使用HTTP代理"foop" , "foop"不可用使用SOCKS5代理"bar.com"
    //   "http=foopy,direct://       -- http的URL使用HTTP代理"foopy" , "foop"不可用将不使用代理
    //   "http=foopy;socks=foopy2   --  http的URL使用HTTP代理"foopy" , 其他URL使用SOCKS4代理foopy2

App.quit()

退出当前应用 . 该方法不发送close时间给窗口 , 应用将静默退出 .

App.setCrashDumpDir(dir)

0.11版本开始 , 不赞成使用该方法 .
  • dir {String} 崩溃生成文件路径

应用崩溃时 , 按照该方法设置的路径保存minidump文件 . 更多信息参考崩溃机制 .

App.addOriginAccessWhitelistEntry(so, dp, dh, ads)

App.addOriginAccessWhitelistEntry(sourceOrigin, destinationProtocol, destinationHost, allowDestinationSubdomains)

  • sourceOrigin {String} 源地址 , 例如http://github.com/
  • destinationProtocol {String} , sourceOrigin可访问的目标协议 , 例如app
  • destinationHost {String} sourceOrigin可访问的目标主机 , 例如myapp
  • allowDestinationSubdomains {Boolean} 设置为true , sourceOrigin可访问目标地址子域

添加跨域入口地址的白名单 . 假设应用通过从github.com重定向到应用页面 , 使用该方法如下:

App.addOriginAccessWhitelistEntry('http://github.com/', 'chrome-extension', location.host, true);

使用App.removeOriginAccessWhitelistEntry方法 , 传入相同的参数完成删除白名单的操作 .

App.removeOriginAccessWhitelistEntry(so, dp, dh, ads)

App.removeOriginAccessWhitelistEntry(sourceOrigin, destinationProtocol, destinationHost, allowDestinationSubdomains)

  • sourceOrigin {String} 源地址 , 例如http://github.com/
  • destinationProtocol {String} , sourceOrigin可访问的目标协议 , 例如app
  • destinationHost {String} sourceOrigin可访问的目标主机 , 例如myapp
  • allowDestinationSubdomains {Boolean} 设置为true , sourceOrigin可访问目标地址子域

删除跨域入口地址的白名单 , 参考addOriginAccessWhitelistEntry方法 .

App.registerGlobalHotKey(shortcut)

  • shortcut {Shortcut} 注册快捷键Shortcut对象 .

为系统注册全局快捷键 , 也成为全系统热键 .

参考快捷键获取更多说明信息 .

App.unregisterGlobalHotKey(shortcut)

  • shortcut {Shortcut} 注销快捷键Shortcut对象 .

注销全局快捷键 .

参考快捷键获取更多说明信息 .

事件: open(args)

  • args {String} 命令行 .

应用打开文件时触发 .

事件: reopen

Mac系统特性 . 已经运行的应用 , 当点击dock中的图标是触发该事件 .