45 comments on “这年头,你只需要懂Node webkit

  1. Good, 是不是类似于Win8的Metro用JS开发? 不过感觉在Web大行其道的情况下这个和写个Chrome插件实现的功能和所花费的精力相差不大吧。

  2. 写了个在Windows下使用Sublime-project的node webkit编译系统脚本:http://thisisqu.iteye.com/blog/1883810,最近刚开始学这玩意。多多交流~

      • 其实我有个事情想请教:
        我需要实现多标签页,每个标签页对应一个web url地址(实现不带url输入框的多标签浏览器,作为我们产品的壳)。
        但是我看api中只提供了对window的操作,没有标签页相关的内容。
        请问你有解决方案吗?

          • 哦,谢了。我目前就用的这种方式,在页面加载20个iframe的情况下,跟chrome的内存占用率差不多。

  3. 有什么接口可以访问到request像cookie querystring,还有response可以有自己来控制吗在node-webkit里

  4. 请个问题,我在用node webkit的时候,为什么不能更改window.navigate.language=zh-cn 而默认的是en-us,如何改更改!这样造成我的本地化不能用,会显示为英文!

  5. 麻烦问下,我刚开始学,但是第一步就遇到问题了。
    请教下,“下载你系统所属的二进制文件后,直接nw path_to_app_url”
    我是mac os 系统,官网下载后刷双击图标,然后运行nw命令,提示是nw commond not find。
    需要怎么解决。谢谢

  6. Hi, 你好! 我与楼上”乌鸦”有同样的需求, 即多个tab页, 不过不想用iframe的方式, 因为chrome有多个tab页的功能, 我想直接用, 但node-webkit不支持, 请问可以通过修改其它源码来支持吗? 多谢!!

  7. edge.js看起来不错,但是不能直接用在node-webkit里面,我按照node-webkit说明文档里的方法重新编译出错,https://github.com/rogerwang/node-webkit/wiki/Using-Node-modules#3rd-party-javascript-modules, 能介绍下你是怎么编译的吗,或者分享下编译好的;)

  8. 您好。 我想请问一下。 我想调用系统的打印功能。
    比如: 打印机列表。 然后指定一台打印机打印。
    我想实现这个功能。请问应该朝哪个方向研究? nodejs去找模块吗? 请问我应该怎么办呢?

    • Node-webkit提供的系统API比较少,可以找找nodejs模块,不过我感觉nodejs对这方面的模块也很少,毕竟nodejs更适合做网络应用。

  9. 我们用node+express写了一个web.然后想用node-webkit转换为桌面应用,类似于https://github.com/jaeh/node-webkit-express
    package.json文件如下:
    {
    “name”: “m-cms”,
    “version”: “0.0.1″,
    “main”: “index.html”,
    “window”: {
    “width”: 600,
    “height”: 750,
    “title”: “m-cms edit”,
    “toolbar”: true
    },
    “dependencies”: {
    “express”: “3.4.0″,
    “jade”: “*”,
    “stylus”: “*”
    }
    }
    index.html 内容

    STARTING LOCAL SERVER

    app.js的内容为
    “use strict”;

    /**
    * Module dependencies.
    */
    var http = require(‘http’)
    , express = require(‘express’)
    , http = require(‘http’)
    , path = require(‘path’)
    , routes = require(path.join(process.cwd(), ‘routes’, ‘index.js’))
    , app = express();

    var options = {
    host: ‘localhost’,
    port: 2323
    };

    //check if server is already running
    http.get(options, function(res) {
    console.log(‘server runs already, redirecting to localhost’);
    }).on(‘error’, function(e) {
    //server is not yet running

    // all environments
    app.set(‘port’, process.env.PORT || 2323);
    app.set(‘views’, process.cwd() + ‘/views’);
    app.set(‘view engine’, ‘jade’);
    app.use(express.favicon());
    app.use(express.logger(‘dev’));
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(require(‘stylus’).middleware(path.join(process.cwd(), ‘public’)));
    app.use(express.static(path.join(process.cwd(), ‘public’)));

    // development only
    if (‘development’ == app.get(‘env’)) {
    app.use(express.errorHandler());
    }

    app.get(‘/’, routes.index);
    app.get(‘/test’, routes.test);

    http.createServer(app).listen(app.get(‘port’), function(err){
    console.log(‘server created’);
    });
    });
    为啥转换后显示没有显示app.js的内容,而且还可以用网页访问http:/127.0.0.1:2323
    就像直接执行node app.js一样可以访问网页
    而转换后的页面只显示STARTING LOCAL SERVER
    这样不正常不,我其实是想用node-webkit把node-express的web内容转换过来,是我用法不对吗?

    • “main”: “index.html”, 你已指定index.html为应用首页,当然是显示这个页面内容。你可以尝试在index.html中嵌入一个iframe, src为http:/127.0.0.1:2323. 我还没有过这种尝试,无法给你更多建议哈。

      • 谢谢
        我今天查了一下
        You may use window.location() to get the URL of a page. (Requires some additional parsing to get the path out of the URL.)
        这样可以
        确实可以,但是有两个页面,一个index,要点一下才转到这个页面
        但是我总觉得node-main应该起作用啊,可是没有起作用,可能还是细节问题,我还要再看看

  10. 其实个人认为桌面版开发的目的还是更多的和本地设备,本地文件交互,现在唯一纠结的就是系统设备的调用,如打印机,摄像头的调用 以及office文件,图片文件,直接本地操作
    博主能否提供此类demo吗
    web下的解决方案就很多了,直接用第三方控件NPAPI或者直接调用HTML5 API都可以实现,但在node-webkit下呢????

  11. 赞,真的不错!
    请教一下,在Node-WebKit做桌面应用时,能否调用系统某些API,这样可以做浏览器插件,像ActiveX一样能与浏览交互。如,淘宝网一样,通过网页连接可以调用旺旺客户端。

囧囧明 进行回复 取消回复

电子邮件地址不会被公开。 必填项已用 * 标注

*