nw.js node-webkit系列(3)基本程式結構與配置
本節開始,部分內容參照我們的nwjs前輩玄魂的文章,其中也會加入博主在使用nwjs開發專案過程中總結的一些實戰經驗。我們都是站在巨人的肩上繼續努力學習,去其糟粕留其精華,好的技術就應該不斷總結和傳播,那麼我們現在開始吧!
(一)基本程式結構
如上圖,是一個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和name是必須的屬性。其他簡單明瞭的就大夥就直接看註釋吧,博主主要講講幾個比較難理解的引數配置。{ /**指定程式的起始頁面。*/ "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 } }
(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應用的顯示介面,類似於銀行的排隊等待辦理業務的取票機介面。
還有一些不經常使用的引數如下:
user-agent
應用發起http請求時,使用的user-agent頭資訊。下列佔位符可以被替換:
%name: 替換配置中的name屬性%ver: 替換配置中的version屬性
%nwver: 被node-webkit版本資訊替換. %webkit_ver: 被WebKit 引擎的版本資訊替換.%osinfo: 被 作業系統和 CPU 資訊 替換,在瀏覽器的 user agent 字串中可以被看到.
示例配置:
{
"user-agent": "測試 %ver %nwver %webkit_ver windows7" /* 替換佔位符內容即可 */
}
chromium-args
string型別,自定義chromium啟動引數。詳細的引數列表參考:http://src.chromium.org/svn/trunk/src/content/public/common/content_switches.cc
js-flags
string型別,傳遞給js引擎(V8)的引數。例如,想啟用Harmony Proxies和 Collections功能,可以使用如下配置方式:
{
<span style="white-space:pre"> </span>"js-flags": "--harmony_proxies --harmony_collections"
}
inject-js-start / inject-js-end
string 型別。指定一個js檔案。
對於inject-js-start,該js檔案會在所有css檔案載入完畢,dom初始化之前執行。對於inject-js-end,該js檔案會在頁面載入完畢,onload事件觸發之前執行。
snapshot
string型別,應用程式的快照檔案路徑。包含編譯的js程式碼。使用快照檔案可以有效的保護js程式碼。後續文章會詳細介紹。
dom_storage_quota
int型別,dom 儲存的限額(以自己為單位)。建議限制為你預想大小的2倍。
no-edit-menu
bool值,Edit選單是否顯示。僅在Mac系統下有效。
maintainers
軟體維護者資訊,是一個數組,每個維護人的資訊中,name欄位是必須欄位,其他兩個(email和web)是可選欄位。示例如下:
{
"maintainers":[ {
"name": "Bill Bloggs",
"email": "[email protected]",
"web": "http://www.bblogmedia.com",
}]
}
contributors
貢獻者資訊,格式同maintainers,按照約定,第一個contributor是該應用的作者。
bugs
提交bug的url。可以是“mailto:”或者“http://”格式。
licenses
一個數組,可以包含多個宣告。每個宣告包含“type”和“url”兩個屬性,分別指定宣告的型別和文字。示例如下:
{
"licenses": [
{
"type": "GPLv2",
"url": "http://www.example.com/licenses/gpl.html",
}]
}
repositories
程式包的儲存地址陣列,type和url指定可以下載或者克隆程式包的地址,如果程式包不在根目錄中,需要在path屬性指定相對目錄。示例如下:
{
"repositories": [
{
"type": "git",
"url": "http://github.com/example.git",
"path": "packages/mypackage"
}]
}
小貼士:想更全面地瞭解配置資訊:可參考https://github.com/nwjs/nw.js/wiki/Manifest-format
相關推薦
nw.js node-webkit系列(3)基本程式結構與配置
本節開始,部分內容參照我們的nwjs前輩玄魂的文章,其中也會加入博主在使用nwjs開發專案過程中總結的一些實戰經驗。我們都是站在巨人的肩上繼續努力學習,去其糟粕留其精華,好的技術就應該不斷總結和傳播,那麼我們現在開始吧! (一)基本程式結構 如上圖,是一個nw程式的基本
nw.js node-webkit系列(5)Native UI API Window的使用
本節主要介紹Native UI API中Window的基本使用方法。簡單的說,Window就是使用nwjs開發的應用程式在桌面顯示的容器(視窗)。node-webkit >= v0.3.0才支援
解讀ASP.NET 5 & MVC6系列(3):專案釋出與部署
本章我們將講解ASP.NET5專案釋出部署相關的內容,示例專案以我們前一章建立的BookStore專案為例。 釋出前的設定 由於新版ASP.NET5支援多版本DNX執行環境的釋出和部署,所以在部署之前,我們需要設定部署的目標DNX(即之前的KRE)。 步驟:右鍵BookStore專案->屬性->A
程式效能優化探討(3)——儲存器層次結構與快取記憶體
連外行都大概清楚,目前硬體速度的瓶頸在硬碟而不是CPU。為了有效的克服不同器件之間的速度差,從CPU到硬碟引入了多級快取機制。由於快取影響程式讀取速度,因此是實現優化時必須考慮的內容。 一、儲存器層次結構 快取的思想可能存在於任何有速度差的
Keras深度學習框架學習筆記系列(2)- Keras的安裝與配置
這裡主要講述Ubuntu16.04環境下Keras的安裝與配置,安裝過程基本上參考了Keras官方中文文件中的安裝說明,由於我只使用了CPU進行加速,因此忽略了CUDA開發環境及相應加速庫的安裝過程,
Javascript筆記(六)之程式結構與流程控制語句
一、程式結構簡介 1、幾個基本概念 程式結構分為順序結構、分支結構、迴圈結構,通常伴隨著這幾種程式結構存在的還有流程控制語句; 在ECMA-262規定來一組流程控制語句,語句定義了ECMAScript中的主要語法,語法通常由一個或多個關鍵字來完成給定的任務,例如
NW.js(node-webkit)桌面應用(app)開發之環境配置
本文主要是介紹一下nw.js(node-webkit)的開發配置以及桌面應用開發的直觀感受,後續會有詳細的應用開發(示例)講解,敬請關注! 有問題可以留言討論,知無不言。 一.認識nwjs NW.js (原名 node-webkit)是一個結合了 Chro
NW js node-webkit 桌面應用(app)開發之環境配置
本文主要是介紹一
node.js初步了解(3)——慕課網(回調,作用域,上下文)
span clas global ava 運行 time log timeout color 1. 1 //回調:回調是異步編程最基本的方法,node.js需要按順序執行異步邏輯的時候,一般采用後續傳遞的方式,將後續邏輯封裝在回調函數中,作為起始函數的參數。 2 //
SlwUi(Super Lightweight UI)前端js外掛菜單系列(3)右鍵選單SlwCtxMenu,導航選單SlwMenu
今天介紹前端js外掛菜單系列(3)右鍵選單SlwCtxMenu,導航選單SlwMenu。 基於jQuery,瀏覽器相容(Browser Support) Internet Explore
Node.js躬行記(3)——命令列工具
一、自定義 建立一個空目錄,然後通過npm init命令初始化package.json檔案,並按提示輸入相關資訊或直接回車使用預設資訊,生成的內容如下所示。 { "name": "pwct", "version": "1.0.0", "description": "命令列工具測試", "
bfzwjeqjSpriNgMc學習系列(3)之url
ref htm 學習 pri blank url lan get 系列 bfzwjeqjSpriNgMc學習系列(3)之url χ絳 bfzwjeqjSpriNgMc學習系列(3)之urlbfzwjeqjSpriNgMc學習系列(3)之url
R語言數據挖掘實戰系列(3)
數據處理 統計分析 函數 繪圖 R語言數據挖掘實戰系列(3)三、數據探索 通過檢驗數據集的數據質量、繪制圖表、計算某些特征量等手段,對樣本數據集的結構和規律進行分析的過程就是數據探索。數據質量分析 數據質量分析的主要任務是檢查原始數據中是否存在臟數據,臟數據一般是指
JS知識整理隨筆(3)數組
.... nat 一個 .so 項目 stat 分享 它的 處的 創建數組 使用Array構造函數 語法:new Array() 小括號說明 預先知道數組要保存的項目數量 向Array構造函數中傳遞數組應包含的項 使用數組字面量表示法 由一對包含數組項的方括號[]表示,
Node.js學習之旅(二)-----MongoDB的安裝與啟動
tar 商業 blank script img blog javascrip ref es2017 安裝與啟動MongoDB Windows 用戶向導:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-
開發框架模塊視頻系列(3)-- 字典管理模塊介紹
com 一個 href 參數 多項目 在線 完整 搜索 版本 在很多項目裏面,字典管理是必備的項目模塊,而這個又是比較通用的功能,因此可以單獨做成一個通用字典管理,通過集成的方式在項目中重復使用,這樣可以避免代碼的重復維護管理,對企業來說,也可以更好管理核心的代碼,實現統一
OpenStack Queens 源碼安裝系列(3)環境準備
eth tar.gz ger linux white tcpdump b-s org fire 一、節點信息 2個節點 1個控制節點 1個計算節點 網絡規劃: 1、管理網絡(Management) 2、業務網絡(Tenant) 3、外部網絡(External)
鼠標Drag/Drop事件-可視化設計器開放平臺系列(3)
defined jquery插件 我們 order 滾動 rar 生成 bubuko case 前面一文已經創建了一個Jquery插件,並在初始化時渲染了一個紅色的矩形,作為一個設計器,最常用的操作是直接從面板中將組件拖到畫布上生成實例,本文主要講述如何通過拖動組件來顯示。
區塊鏈技術系列(3)- Fabric基礎架構原理
多看 技術分享 發的 size 開源項目 初始 排序。 創建 生成 前言 對於區塊鏈方面多技術,我還是建議大家多看英文文檔,多利用Google來搜索技術文章。 怎麽搭建自己專屬V-P-N來訪問Google,請看我之前發的文章: 新人如何快速搭建自己的個人網站以及自己專屬
例項學習ansible系列(3)Ansible執行命令常用Option
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!