作者:玄魂

出处:http://www.cnblogs.com/xuanhun/

目录

  • 11.1 Shell是什么
  • 11.2 示例
  • 11.3 小结

11.1 Shell是什么

Shell是和桌面系统相关的一组API。通常在操作系统中,我们有“核”和“壳”的区分,“核”是操作系统的内核,“壳”是一个操作界面,提供给用户输入命令,解析并执行命令(调用“核”),这个用户界面被称作Shell(“壳”)。最常见的shell就是命令行(如windows下的CMD)。

Node-Webkit提供的shell功能很有限,现在能看到的只有三个api:

  • openExternal(URI)

    用桌面系统默认的行为,在应用外部打开URI。这和我们在浏览器中打开一个mailto:链接是一样的,控制器会转到桌面系统默认的邮件客户端。

    2.11. node-webkit教程(11) Platform Service之shell - 图1

  • openItem(file_path)

    以操作系统默认方式打开指定路径。

  • showItemInFolder(file_path)

    在文件管理器中显示“file_path”指定的文件。

11.2 示例

新建shell.html和package.json文件。

shell.html 内容如下:

  1. <html>
  2. <head>
  3. <title>shellDemo</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. </head>
  6. <body >
  7. <h1>shell 测试</h1>
  8. <button onclick="openInexplorer()">在默认浏览器中打开玄魂的电子书</button>
  9. <button onclick="openPdf()">打开pdf</button>
  10. <button onclick="showPdfInFloder()">打开pdf所在的文件夹</button>
  11. <script>
  12. // Load native UI library.
  13. var gui = require('nw.gui');
  14. var shell = gui.Shell;
  15. function openInexplorer()
  16. {
  17. shell.openExternal('http://ebook.xuanhun521.com');
  18. }
  19. function openPdf()
  20. {
  21. shell.openItem('D:\\101.pdf');
  22. }
  23. function showPdfInFloder()
  24. {
  25. shell.showItemInFolder('D:\\学习资料\\技术类教程\\操作系统\\101-深入理解Linux内核(第三版 英文版)-1030页-pdf-免费下载.pdf');
  26. }
  27. </script>
  28. </body>
  29. </html>

package.json内容如下:

  1. {
  2. "name": "shell-demo",
  3. "main": "shell.html",
  4. "nodejs":true,
  5. "window": {
  6. "title": "shellDemo",
  7. "toolbar": true,
  8. "width": 800,
  9. "height": 600,
  10. "resizable":true,
  11. "show_in_taskbar":true,
  12. "frame":true,
  13. "kiosk":false,
  14. "icon": "2655716405282662783.png"
  15. },
  16. "webkit":{
  17. "plugin":true
  18. }
  19. }

在上面的代码中,我们首先获取shell对象,

  1. // Load native UI library.
  2. var gui = require('nw.gui');
  3. var shell = gui.Shell;

2.11. node-webkit教程(11) Platform Service之shell - 图2

函数openInexplorer中,调用shell.openExternal方法,在默认浏览器中打开“玄魂的电子书站点”。运行效果如下:

2.11. node-webkit教程(11) Platform Service之shell - 图3

在函数openPdf中调用shell.openItem(‘D:\101.pdf’),在系统默认的paf阅读器中打开pdf文档,效果如下:

2.11. node-webkit教程(11) Platform Service之shell - 图4

在函数showPdfInFloder中,调用shell.showItemInFolder方法,在文件夹中显示并选中该文件。

2.11. node-webkit教程(11) Platform Service之shell - 图5

11.3 小结

本文内容主要参考node-webkit的官方英文文档,做了适当的调整(https://github.com/rogerwang/node-webkit/wiki/Shell)。