mynwjs-nodewebkit开发框架
mynwjs是一个开箱即用的nodewebkit开发框架。


欢迎使用mynwjs

欢迎使用,mynwjs是一个开箱即用的 nodewebkit开发框架,基于最新版的 nodewebkit运行, mynwjs集成了 nodewebkit开发版(debug版)和分发版。直接下载就可以开发使用。

快速开始

已经集成了 nodewebkit的开发版和分发版,所以只需要下载最新版本的mynwjs( 点击下载),解压后双击 启动程序.bat就是以分发版的 nodewebkit来启动 testobj ,双击 启动程序sdk.bat 就是以开发版的 nodewebkit来启动 testobj

基本结构

mynwjs目录结构与说明:
-nwjs-sdk-v0.18.4-win-ia32  (nodewebkit开发版)
-nwjs-v0.18.4-win-ia32      (nodewebkit分发版)
-testobj                    (主程序文件夹)
 |-css                      (主程序css文件夹)
 |-img                      (主程序图片文件夹)
 |-js                       (主程序js文件夹)
 |-page                     (主程序页面文件夹)
  |-comm                    (包含常用的页面文件夹)
  |-main                    (包含主要的页面文件夹)
  |-index.html              (默认的程序页面)
 |-package.json             (nodewebkit配置文件)
 |-start.html               (入口文件夹)
-启动程序.bat                (通过分发版的nodewebkit启动testobj的批处理)
-启动程序sdk.bat             (通过开发版的nodewebkit启动testobj的批处理)
                        

nodewebkit开发版和分发版是从 nodewebkit官方网站获取的最新程序,如果需要最新的 nodewebkit,自行从 nodewebkit的官方下载并替换,但需要修改启动程序批处理文件中的相关参数。

testobj是主程序文件夹,遵循nodewebkit开发规范。


文档

mynwjs只是定义了 nodewebkit程序自身的结构、配置和运行路由,mynwjs开发需要遵循基本的nodewebkit开发规范。

配置

package.json是nodewebkit程序开发的配置文件

{
    /**指定程序的起始页面。*/
    "main": "start.html",
    /**字符串必须是小写字母或者数字,可以包含.或者_或者-不允许带空格。name必须全局唯一。*/
    "name": "mynwjs",
    /**程序描述*/
    "description": "this is a node-webkit programme power by mynwjs",
    /**程序版本号*/
    "version": "0.1.0",
    /**关键字*/
    "keywords": ["demo","node-webkit"],
    /**bool值,如果设置为false,将禁用webkit的node支持。*/
    "nodejs": true,
    /**
    * 指定一个node.js文件,当程序启动时,该文件会被运行,启动时间要早于node-webkit加载html的时间。
    * 它在node上下文中运行,可以用它来实现类似后台线程的功能。
    * (不需要可注释不用)
    */
    //"node-main": "js/node.js",
    /**
    * bool值。默认情况下,如果将node-webkit程序打包发布,那么只能启动一个该应用的实例。
    * 如果你希望允许同时启动多个实例,将该值设置为false。
    */
    "single-instance": true,
    /**窗口属性设置 */
    "window": {
        /**字符串,设置默认title。*/
        "title": "mynwjs",
        /**窗口的icon。*/
        "icon": "img/mynwjs.png",
        /**bool值。是否显示导航栏。*/
        "toolbar": false,
        /**bool值。是否允许调整窗口大小。*/
        "resizable": true,
        /**是否全屏*/
        "fullscreen": false,
        /**是否在win任务栏显示图标*/
        "show_in_taskbar": true,
        /**bool值。如果设置为false,程序将无边框显示。*/
        "frame": true,
        /**字符串。窗口打开时的位置,可以设置为“null”、“center”或者“mouse”。*/
        "position": "center",
        /**主窗口的的宽度。*/
        "width": 800,
        /**主窗口的的高度。*/
        "height": 670,
        /**窗口的最小宽度。*/
        "min_width": 400,
        /**窗口的最小高度。*/
        "min_height": 335,
        /**窗口显示的最大宽度,可不设。*/
        "max_width": 800,
        /**窗口显示的最大高度,可不设。*/
        "max_height": 670,
        /**bool值,如果设置为false,启动时窗口不可见。*/
        "show": true,
        /**是否在任务栏显示图标。*/
        "show_in_taskbar":true,
        /**
         * bool值。是否使用kiosk模式。如果使用kiosk模式,
         * 应用程序将全屏显示,并且阻止用户离开应用。
         * */
        "kiosk": false
    },
    /**webkit设置*/
    "webkit": {
        /**bool值,是否加载插件,如flash,默认值为false。*/
        "plugin": true,
        /**bool值,是否加载Java applets,默认为false。*/
        "java": false,
        /**bool值,是否启用页面缓存,默认为false。*/
        "page-cache": false
    }
}
                        
注:在实际的开发配置中,请将所有的注释去掉只保留配置正文,以确保程序运行的稳定。


核心

mynwjs的核心是项目文件夹(testobj)中 start.htmljsindex.js文件。

start.html文件是框架的入口文件,引入了一些基础类库和一个基本的路由。会根据 url中的 _p参数来载入相应的页面文件。

index.js文件是框架的核心文件,包含了框架运行需要的基本的对象和方法,也包含一些常用的比如调用系统命令行、监视文件夹内容等常用的方法。

index.js_i是框架运行的核心内容,包含了一些参数的初始化和基本的方法

//主文件夹
mainpath:C:\workspace\myobj\mynwjs
//nwjs程序运行的扩展目录
rootPath:chrome-extension://mnocfdcnjngmoagpogamgempcbaaoppg
//用户数据存储文件夹
dataPath:C:\Users\gaocheng\AppData\Local\testobj\User Data\Default
//exe执行文件所在的文件夹
execpath:C:\workspace\myobj\mynwjs\nwjs-v0.18.4-win-ia32
                        

注意:上面的参数是在没有打包的情况下,直接通过 nw.exe 执行主程序文件夹时的参数,如果打包发布后,这些参数会有明显的变化,请确定理解上面的各参数的含义后再使用。

_i.uget

uget属性包含了 url中传入的参数,例如 ------?_p=123&key1=val1,那么要获取 key1的传入值,就使用 _i.uget['key1']uget参数由 _i中的 urlinit方法来进行初始化。

_i.a

a方法用于构建访问某个界面的url。

a:function(_p,data){//建立适用于当前程序的界面跳转链接
                            
比如要访问 page/comm/comm.html?k1=v1&k2=v2页面, 就用 a('comm/comm.html',{k1:'v1',k2:'v2'})

_i.newwin

newwin方法用来打开新的窗口。

newwin:function (_p,data,w,h) {//打开新窗口
                            
要打开 page/test/test1.html?k1=v1&k2=v2页面,且设定页面长400宽300,就用 newwin('test/test1.html',{k1:'v1',k2:'v2'},400,300),如果不设定打开页面的长宽,默认打开的界面是长800宽600。

_i.ititle

ititle设置窗口的标题。

_i.v

v方法用来加载页面并设置参数。

v: function (path, vars) {//加载html模板
                        
start.html 中就是使用的 v方法载入的页面文件。v('comm/comm.html',{k1:'v1',k2:'v2'})表示载入 comm/comm.html页面文件,并且可以在页面中使用 _i._vars['k1']来获取响应的参数值。


其他

mynwjs是一个小作品,类库还在不断的完善和改进过程中,抛砖引玉,希望未来能够扩充成为一个好用的nwjs开箱即用开发环境。

mynwjs托管在osc的git上,点此在osc上查看源代码


123

友情链接: 网址导航

冀ICP备14000903号-1 友情链接联系:ip201399@163.com