node-webkit教程(11)Platform Service之shell

简介:

/玄魂

目录

node-webkit教程(10)Platform Serviceshell

前言

11.1  Shell是什么

11.2  示例

11.3 小结

 

前言

几个月前,要开发一个简易的展示应用,要求支持离线播放(桌面应用)和在线播放(web应用)。

当时第一想到的是flex,同一套代码(或者只需少量的更改)就可以同时运行在桌面和浏览器上。由于很多展现效果要全新开发,我想到了impress.js(https://github.com/bartaz/impress.js/)。如果选择impress.js,就意味着要将html5作为桌面应用,当时想到要封装webkit,但是本人对这方面也不是很熟悉,时间也很有限,就又沿着这个方向搜索,找到了node-webkit(https://github.com/rogerwang/node-webkit)

node-webkit解决了我通过htmljs来编写桌面应用的难题

至于node-webkit的定义,按照作者的说法:

 基于node.jschromium的应用程序实时运行环境,可运行通过HTML(5)CSS(3)Javascript来编写的本地应用程序。node.jswebkit的结合体,webkit提供DOM操作,node.js提供本地化操作;且将二者的context完全整合,可在HTML代码中直接使用node.jsAPI

从本篇文章开始,为您介绍Platform Services些列的API,本系列由以下类别:

·             App – 每个应用运行时全局api

·             Clipboard – 剪贴板

·             Tray – 状态栏图标,消息通知

·             File dialogs-文件选择对话框

·             Shell – 桌面相关

·             Handling files and arguments-处理文件和相关参数

 

11.1  SHELL是什么

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

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

l  openExternal(URI)

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

l  openItem(file_path)

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

l  showItemInFolder(file_path)

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

11.2  示例

新建shell.htmlpackage.json文件。

shell.html 内容如下:

<html>

<head>

    <title>shellDemo</title>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>

<body >

    <h1>shell 测试</h1>

    <button onclick="openInexplorer()">在默认浏览器中打开玄魂的电子书</button>

    <button onclick="openPdf()">打开pdf</button>

    <button onclick="showPdfInFloder()">打开pdf所在的文件夹</button>

    <script>

        // Load native UI library.

        var gui = require('nw.gui');

        var shell = gui.Shell;

        function openInexplorer()

        {

            shell.openExternal('http://ebook.xuanhun521.com');

        }

        function openPdf()

        {

            shell.openItem('D:\\101.pdf');

        }

        function showPdfInFloder()

        {

            shell.showItemInFolder('D:\\学习资料\\技术类教程\\操作系统\\101-深入理解Linux内核(第三版 英文版)-1030-pdf-免费下载.pdf');

        }

    </script> 

</body>

</html>

package.json内容如下:

{

  "name": "shell-demo",

  "main": "shell.html",

  "nodejs":true,

   "window": {

    "title": "shellDemo",

    "toolbar": true, 

    "width": 800, 

    "height": 600,

   "resizable":true,

   "show_in_taskbar":true,

   "frame":true,

   "kiosk":false,

   "icon": "2655716405282662783.png"

  },

  "webkit":{

  "plugin":true

  }

}

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

// Load native UI library.

        var gui = require('nw.gui');

        var shell = gui.Shell;

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

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

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

 

11.3 小结

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

鄙视不标明出处的转载,更多相关内容,欢迎访问玄魂的博客www.xuanhun521.com

更多相关内容,欢迎访问玄魂的博客(更多node-webkit相关内容 http://www.xuanhun521.com/Blog/Tag/node-webkit)

ps:nw.js,electron交流群 313717550 

 


本文转自玄魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/p/3685100.html,如需转载请自行联系原作者

目录
相关文章
|
1月前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
101 32
|
17天前
|
JavaScript Shell C#
多种脚本批量下载 Docker 镜像:Shell、PowerShell、Node.js 和 C#
本项目提供多种脚本(Shell、PowerShell、Node.js 和 C#)用于批量下载 Docker 镜像。配置文件 `docker-images.txt` 列出需要下载的镜像及其标签。各脚本首先检查 Docker 是否安装,接着读取配置文件并逐行处理,跳过空行和注释行,提取镜像名称和标签,调用 `docker pull` 命令下载镜像,并输出下载结果。使用时需创建配置文件并运行相应脚本。C# 版本需安装 .NET 8 runtime。
100 2
|
7月前
|
资源调度 JavaScript Linux
【Azure 应用服务】本地Node.js部署上云(Azure App Service for Linux)遇到的三个问题解决之道
【Azure 应用服务】本地Node.js部署上云(Azure App Service for Linux)遇到的三个问题解决之道
|
4月前
|
Web App开发 JavaScript 前端开发
2024年5月node.js安装(winmac系统)保姆级教程
本篇博客为2024年5月版Node.js安装教程,适用于Windows和Mac系统。作者是一名熟悉JavaScript与Vue的大一学生,分享了Node.js的基本介绍、下载链接及简单安装步骤。安装完成后,通过终端命令`node -v`验证版本即可确认安装成功。欢迎关注作者,获取更多技术文章。
65 2
2024年5月node.js安装(winmac系统)保姆级教程
|
4月前
|
JavaScript C++ 容器
【Azure Bot Service】部署NodeJS ChatBot代码到App Service中无法自动启动
2024-11-12T12:22:40.366223350Z Error: Cannot find module 'dotenv' 2024-11-12T12:40:12.538120729Z Error: Cannot find module 'restify' 2024-11-12T12:48:13.348529900Z Error: Cannot find module 'lodash'
67 11
|
5月前
|
JavaScript 前端开发 Shell
Shell 教程
10月更文挑战第1天
41 4
|
5月前
|
JavaScript 前端开发 Java
Node.js 教程
10月更文挑战第1天
88 0
|
7月前
|
JavaScript NoSQL 前端开发
|
7月前
|
JavaScript Linux
【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect locale information provided
【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect locale information provided
116 0

热门文章

最新文章