首页
学习
活动
专区
工具
TVP
发布

基于Node.js开发平台窗口程序

发表日期: 2017.12.26 分类: Code Tags: Node.js JavaScript 平台 Electron 时间很快,已经是学期末了,这学期没有课程设计,人工智能课程结课的时候留了一个小实验...来写了,使用Electron最大的好处是具有非常好的平台性,整个开发过程中使用HTML CSS JavaScript以及Node.js便可以开发出所需要的桌面程序....Electron是Github伴随着Atom项目推出的开源平台桌面程序的开发工具,在Electron中可以使用纯JavaScript来调用丰富的原生APIs,Electron基于Node和Chromium...实际上,Electron并不是唯一一个以Web前端语言开发桌面程序的框架,在此之前就已经有NW.js,它和Electron相似,都是利用web前端语言开发桌面程序,并且具有非常好的平台性,但是现在Electron...当程序开发调试完成, 使用electron-packager工具便可以非常简便地生成Windows (.exe) Linux (.deb or .rpm)以及MacOS (.dmg)三大平台下的安装包,

4.1K50

用NW.js构建平台桌面应用(3)-利用Node.js

Node.js常用来构建高并发的C/S应用,将这种模式移植到NW.js程序中虽然可行且费不了什么功夫,但仅仅这样做并不能发挥出平台所有的潜力;要知道NW.js允许直接在DOM中和Node.js交互,而这将大大加快程序的运行和简化开发...使用Node.js模块 内部模块 var fs = require('fs') 第三方模块 npm install 之后 var _ = require('underscore') C/C++ 模块...global对象 NW.js中的global对象除了Node.js中的作用,还能使用DOM,这样就提供了一个 在窗口和Node.js上下文中共享对象 的途径;此外,一旦window对象被创建,所有global.../util').dirname; 平台 Windows系统处理路径采用反斜杠(backslash),而其他系统一般使用斜杠(slash),采用Node.js的 path 模块解决: var path...代替解决 或者采用 nwglobal模块,使DOM环境中可以正确判断来自 Node.js 的类型: //nodeContext.js exports.myArr = [1, 2, 3];//index.html

2.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

JS开发平台桌面应用,从原理到实践

Electron是由Github开发,用HTML,CSS和JavaScript来构建平台桌面应用程序的一个开源库。...2.1 使用Electron开发的理由: 1.使用具有强大生态的Web技术进行开发,开发成本低,可扩展性强,更炫酷的UI 2.平台,一套代码可打包为Windows、Linux、Mac三套软件,且编译快速...域 你可以直接使用Node提供的request模块进行网络请求,这意味着你无需再被域所困扰。 强大的扩展性 借助node-ffi,为应用程序提供强大的扩展性(后面的章节会详细介绍)。...3.2 Node.js Node.js是一个让JavaScript运行在服务端的开发平台,Node使用事件驱动,非阻塞I/O模型而得以轻量和高效。...原因有很多: 第一点;为了达到平台的效果,每个Electron应用都包含了整个V8引擎和Chromium内核。

6.9K50

用NW.js构建平台桌面应用(1)-入门案例

NW.js的用途 NW.js 基于 Chromium 和 Node.js,从而可以在桌面app中使用浏览器开发技术并直接调用 Node.js 资源,甚至将一个web应用打包到本地也轻而易举。...安装NW.js 可以从官网下载; 推荐在开发时下载是sdk版,以使用DevTools 非sdk版也应同时下载,在发布时使用 写一个 Hello World!...index.html", "window": { "width": 500, "height": 500, "resizable": false }} 入口文件指定为"index.html" 如果指定一个js...title> Hello NWJS~ == 右键单击可看到菜单 == //此处演示调用`NW.js...程序会根据项目中的 package.json 自行填好 "App Settings" 和 "Window Settings" 两个界面中的内容,可自行补充 在 "Export Settings" 中,选择要发布的平台种类

3.8K20

reactNative平台app开发经验分享-平台开发兼容

app开发神器RN 初衷依然是把自己在公司实际开发中遇到的踩坑填坑过程记录下来 给自己 也分享给同样从事这行的各位新入行朋友做个爬坑指南 首先 reactNative我在这里简称RN RN是可以做平台开发的...这就导致了一个问题 RN的组件,在Android和ios上有些会有所不同 RN的样式编辑,在Android和ios上有些也会有所不同 这就涉及到了平台兼容 比较常见的兼容问题有: 大小,宽高...在标签内部写入行间样式 // 在css里写入外部样式 // 外部样式引用工具函数的方法:把外部样式用js...null : "PingFangSC-Regular", }}> // 关于兼容 // 平台兼容的思想就是系统监控,不同的系统做兼容判断 import { Platform } from

2.5K20

平台技术演进

在这样的形势下,平台的技术方案也受到越来越多人和企业的关注。接下来,我将从原理、优缺点等方面为大家分享《平台技术演进》。 H5 说到平台,没人不知道H5。...但H5作为平台技术的载体,是如何与不同平台的App进行交互的呢?这时候JSBridge就该出场了。...性能问题:在反应速度、流畅度、动画方面远不及原生 功能问题:对摄像头、陀螺仪、麦克风等硬件支持较差 虽然H5目前还存在不足,但随着PWA、WebAssembly等技术的进步,相信H5在未来能够得到越来也好的发展...从这里可以看出,Flutter的平台相关层很低,平台(如iOS)只是提供一个画布,剩余的所有渲染相关的逻辑都在Flutter内部,这就使得它具有了很好的端一致性。...我个人更看好H5或类H5方案,给它一个浏览器,连“月球”都能跑,这才是真正的平台,其他都是浮云。

2.3K20

Compose 平台现状

Compose 能应用于平台,主要是基于 KMM 架构,KMM 的介绍可以查看官方文档《Get started with Kotlin Multiplatform Mobile[1]》,我们来看下 KMM...从 compose-jb[2] 仓库来看,目前能复用的只有 Android 和 Desktop,想支持全平台的话,任务依然很艰巨,我们来看下简单的架构图: Android 与 Desktop 使用...当我打开 README 时发现,咋被耍猴了: 开发平台应用还需要注意哪些? 既然目前可以支持 Android 和 Desktop,那么,我们在开发界面时需要注意哪些呢?...Decompose 支持的能力有: 路由 生命周期 状态 Decompose 支持的平台有: android, jvm js (both IR and Legacy modes) iosX64, iosArm64...我觉得,如果有一款能直接让客户端的编程语言(kotlin、swift)直接实现端,而不是再学习一款新的语言(dart) 来实现多平台开发,那真是一件美好的事情。

2.8K30

flutter平台原理

不仅框架本身需要处理大量平台相关的逻辑,随着系统版本变化和API的变化,开发者可能也需要处理不同平台的差异,甚至有些特性只能在部分平台上实现,这样框架的平台特性就会大打折扣。...Flutter 从头到尾重写一套平台的UI框架,包括UI控件、渲染逻辑甚至开发语言。...渲染引擎依靠平台的Skia图形库来实现,依赖系统的只有图形绘制相关的接口,可以在最大程度上保证不同平台、不同设备的体验一致性,逻辑处理使用支持AOT的Dart语言,执行效率也比JavaScript高得多...Flutter重写了一套平台的 UI 框架,渲染引擎是依靠 Skia 图形库实现 Flutter 中的控件树直接由渲染引擎和高性能本地 ARM 代码直接绘制,不需要通过中间对象(Web 应用中的虚拟...5.平台,iOS和Android共用一套代码。 6.JIT & AOT运行模式,支持开发时的快速迭代和正式发布后最大程度发挥硬件性能。

1.8K30

用NW.js构建平台桌面应用(4)-数据持久化

中仅保存极少量信息且会过期),数据持久化(Data Persistence)是本地应用开发中的常见需求,通俗的讲就是将瞬时数据(比如内存中的数据,断电即失效)保存为持久数据(比如写入数据库中长久保存); 由于NW.js...的特性,可供选择的本地持久化方案非常丰富,既可以依赖于Node.js直接使用NeDB、LowDB等第三方数据库方案,也可以使用HTML5及其相关标准中提供的WebSQL、WebStorage、IndexedDB...直接存储数据到本地文件 正如之前的文章提到过的,NW.js提供了App.dataPath来访问系统的应用数据目录, 可以利用其方便的存储应用配置文件等 不同平台上的具体指向: Win: $LOCALAPPDATA...); db.get('mittens').then(function (doc) { return db.remove(doc); }); https://github.com/nwjs/nw.js

1.9K20

平台语言应用开发,Elements 介绍

实际上,平台语言开发移动应用的解决方案很多,Xamarin 优势不大。 以下为 Elements 能够开发的应用类型: ?...特色: 先进的编辑功能 单元测试集成 平台的调试和部署 ? 2,Water 用于在 Windows 中开发应用,笔者就不再深入介绍了~~~ ?...,具有智能感知和高级的生产力功能 对所有平台都有丰富的调试能力,包括针对 Mac、Linux 和 iOS 的网络调试 与 Elements.NET 项目、Microsoft Visual...CrossBox FXGen Profiler Obfuscation Oxidlzer Marzipan CrossBox  CrossBox 是平台的系统调试项目...Profiler 平台的性能分析器,能够监控代码运行、远程主机上应用运行的情况,分析性能数据。 Obfuscation 保护代码,防止反编译的工具。根据官方解释的解释,是利用了代码混淆技术。

5K20

用NW.js构建平台桌面应用(2)-原生界面API

); 2.2 访问application data目录路径 所有操作系统都会提供一个默认的文件夹,用来关联每个用户及每个程序,以保存个人设置、应用支持文件,以及某些特定数据;为了避免在程序中硬编码每个平台的对应文件夹...Window API - 操作NW.js窗口 在NW.js中,Window API 只不过是对DOM中window对象的一层包装,很多(并非所有)方法和属性继承了后者的用法,同时window对象也是 Node.js...': 'path/to/js', //在文档loaded前注入的脚本 'inject-js-end': 'path/to/js' //在文档unloaded前注入的脚本 }); 优化窗口显示时机...other.show(); other.hide();other.maximize(); other.unmaximize();other.focus(); 应成对使用以上方法并仔细测试,否则会在不同平台引起差异...(这些图标在不同平台叫法不同,Mac中叫做 Status Item, 一些Linux中叫做 Status Icon, Windows 中叫做 System Tray Icon) // 创建一个托盘图标

6.4K40

.NET平台下的平台探索

跟着微软整个生态体系在进行平台改革,。.NET平台整体平台后我就不再追技术方面的改革,转战涉及linux平台下的软件开发,丰富的LAMP,LNMP架构经验。...云平台从阿里云迁移到azure,.NET后端程序的平台部署,数据库使用azure数据库服务,开源框架servicestack深度使用。....NET后端程序的平台部署主要进行了以下几个方面的改造. 1公司软件服务全部搭建在Linux centos操作系统下。....1使用人群 从平台接入门槛和使用难度来说,主要受众以.NET平台开发者为主,以致力于改变,有多年平台开发经验,有危机感的一部分平台开发者。...基于.NET平台开发,如果要尝试平台,更多的需要技术决策者的支持。 以web部署为例,mono Jexus不是主流的web服务服务器选型,但是绝对经得起生产环境验证。

69720
领券