nw.js node-webkit基本程序結構與配置package.json配置說明


(一)基本程序結構

如上圖,是一個nw程序的基本組織結構,在根目錄下有package.json(程序的配置文件)和index.html(可以是任意名稱,應用的啟動頁面);js/css/resources分別是應用的樣式、腳本、和資源文件(html、圖片等);node_modules存放node.js的擴展組件。這只是一個通用的基本組織結構,實際項目的組織結構,不必一定按照此結構進行搭建,如項目使用的是js模塊化編程require框架的。最終的組織結構以適應實際項目為准,但文件package.json和index.html必須放在根目錄下。

(二)配置文件package.json

nw在啟動應用程序時,首先要讀取package.json文件,初始化基本屬性,下面我們看看package.json的完整參數。每個參數配置都標有注釋。

{
    /**指定程序的起始頁面。*/
    "main": "index.html",
    /**字符串必須是小寫字母或者數字,可以包含.或者_或者-不允許帶空格。name必須全局唯一。*/
    "name": "demo",
    /**程序描述*/
    "description": "demo app of node-webkit",
    /**程序版本號*/
    "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": "demo",
        /**窗口的icon。*/
        "icon": "link.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
    }
}

在上面的配置中,main和name是必須的屬性。其他簡單明了的就大伙就直接看注釋吧,博主主要講講幾個比較難理解的參數配置。
(1)"node-main"配置:指定一個js文件,該js文件是啟動程序時最早運行文件,在node-main腳本中還可以訪問全局的“window”對象,它指向DOM窗口,但是如果頁面導航發生變化,訪問到的window對象也會發生變化。因為它執行時間要早於DOM加載,所以要等頁面加載完畢,才能使用“window”對象。同時,在DOM頁面中,可以通過process.mainModule來獲取node-main信息。

(2)"single-instance"配置:簡單地說,是指是否允許同時打開多個nw應用。

(3)"kiosk"配置:如果該配置設為ture,則顯示為全屏模式並屏蔽關閉按鈕,即該顯示器將會一直停留在nw應用的顯示界面,類似於銀行的排隊等待辦理業務的取票機界面。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM