heX 清單文件(Manifest)說明

2021-08-31 14:46 更新

一些配置參數(shù)需要在瀏覽器環(huán)境創(chuàng)建之前進行處理,或者是需要傳給瀏覽器對象進行初始化。所以參考 Chrome 擴展的模式,heX 中也引入了清單文件。清單文件為一個名為 manifest.jsonJSON 格式文本文件,里面包含了眾多配置項。

heX 的主程序 - hexclient 在啟動時讀入并解析清單文件,若讀取或解析出錯,主程序都將退出。

簡要說明

{
    "first_page": "chrome://version",       // 首頁,可以是 URL 或者一個本地文件路徑
    "application_title": "Hello heX!",      // 程序默認標題,alert 等窗口使用
    "application_shortname": "test",        // 應(yīng)用程序別名
    "use_grit_package": true,               // 使用打包資源
    "icon_path": "",                        // 程序默認圖標路徑
    "use_node": true,                       // 是否開啟 Node.js
    "version": "1.0",                       // 程序版本信息
    "locale": "zh-CN",                      // 瀏覽器區(qū)域設(shè)置
    "multiple_process": false,              // 是否為多進程模式
    "launch_node_in_all_pages": false,      // 在打開的所有頁面中使用 Node.JS
    "load_node_manually": false,            // 是否手動加載 Node.js
    "disable_async_node_apis": false,       // 是否禁用 Node.JS 異步 API
    "remote_debugging_port": 65432,         // 遠程調(diào)試端口
    "disable_debug_log": true,              // 是否禁止生成 Chromium 調(diào)試信息
    "quit_after_main_window_closed": false, // 是否在主窗口關(guān)閉后退出
    "cache_path": "data",                   // 緩存路徑
    "npapi_plugin_directory": "",           // NPAPI 插件路徑
    "disable_ime_composition": false,       // 禁用 IME composition
    "extensions": [                         // heX 擴展名稱列表
      "hex_dialog",
      "hex_sleep",
      "hex_shortcut"
    ],
    "extension_path": "",                   // heX 擴展的路徑
    "single_instance": true,                // 是否為單一實例模式
    "window_class_name": "A_HEXCLIENT",     // 主窗口類名
    "form": {
        "style": "captionless",             // 窗口類型:標準、無標題、桌面 Widget
        "plain": false,                     // 是否為扁平窗口
        "system_buttons": true,             // 是否顯示默認的系統(tǒng)控制按鈕
        "transmission_color": "none",       // 穿透顏色
        "transparent_browser": true,        // 是否為透明瀏覽器
        "fixed": false,                     // 窗體是否可以調(diào)整大小
        "disable_form_apis": false,         // 是否禁用所有窗口相關(guān) API
        "opacity": "none",                  // 窗口透明度
        "hook_system_command": false,       // 是否攔截窗口的系統(tǒng)命令
        "launch_state": "normal",           // 啟動初始狀態(tài)
        "launch_width": 800,                // 啟動初始寬度
        "launch_height": 600,               // 啟動初始高度
        "launch_x": "screen_centered",      // 啟動初始 X 軸位置
        "launch_y": "screen_centered",      //  啟動初始 Y 軸位置
        "min_width": 0,                     // 最小寬度
        "min_height": 0,                    // 最小高度
        "max_width": 0,                     // 最大寬度
        "max_height": 0,                    // 最大高度
        "border_width": 5                   // 模擬邊框區(qū)域?qū)挾?    },
    "browser": {
        "no_proxy_server": false,
        "winhttp-proxy-resolver": false,
        "disable_gpu": true,
        "disable_3d_apis": false,
        "disable_databases": false,
        "disable_experimental_webgl": false,
        "disable_file_system": false,
        "disable_geolocation": false,
        "disable_gpu_process_prelaunch": true,
        "disable_java": false,
        "disable_javascript": false,
        "disable_javascript_i18n_api": false,
        "disable_local_storage": false,
        "disable_logging": false,
        "disable_plugins": false,
        "disable_renderer_accessibility": false,
        "disable_session_storage": false,
        "disable_speech_input": false,
        "disable_web_sockets": false,
        "in_process_gpu": false,
        "in_process_plugins": false,
        "enable_media_stream": true,
        "web_security_disabled": true,
        "file_access_from_file_urls_allowed": true,
        "universal_access_from_file_urls_allowed": true
    }
}

詳細說明

  • first_page$(AppDir) 代表當前程序路徑(包含“/”),也可以是 file 協(xié)議 URL 或者本地路徑。
  • application_shortname:應(yīng)用程序別名,將會影響到使用打包資源時讀取的資源包 PAK 文件名及 URL。
  • use_grit_package:使用 PAK 格式的資源包。參見:heX 打包生成工具說明。
  • icon_path:程序默認圖標路徑,必須是一個本地路徑。
  • use_node:設(shè)置為 true 則開啟 Node.js,與移除 node 動態(tài)庫效果一樣。
  • launch_node_in_pages:默認情況下,通過 window.open() 彈出的子窗口中將不會啟動 Node.js,開啟此配置項后則始終在彈出的子窗口中啟動 Node.js。
  • load_node_manually:當需要自定義 Node.js 啟動時機的時候開啟此配置項,這時需要在頁面中通過加入 <script></script> 標簽或者用 JavaScript 動態(tài)插入 node.js 文件。
  • disable_async_node_apis:此時 Node.js 的 event loop 將停止運行。
  • disable_debug_log:此時將不會再生成 debug.log 文件。
  • quit_after_main_window_closed:默認情況下,只有所有的瀏覽器窗口都關(guān)閉后,程序才會退出。
  • npapi_plugin_directory:當此項為空時會默認使用當前工作路徑作為 NPAPI 插件加載路徑。
  • disable_ime_composition:開啟后將禁用輸入法輸入時的 Composition String,參見:http://msdn.microsoft.com/en-us/library/windows/desktop/dd317765(v=vs.85).aspx。
  • extensions:列出當前程序想要加載的 heX 擴展名稱,以逗號分隔。若擴展不存在或者加載錯誤則自動跳過。
  • extension_path:指定需要加載的 heX 擴展的路徑,若為空則使用當前工作路徑。
  • single_instance:開啟單一實例模式后,啟動新的實例之后會自動激活當前已經(jīng)啟動的實例,并且觸發(fā) instanceCreated 事件,此配置要求 window_class_name 不為空,并且為單進程模式。
  • window_class_name:自定義主窗口的窗口類名。
  • form 對象

    • style:有三種取值,不區(qū)分大小寫:
      • standard:標準窗口,與系統(tǒng)主題一致。
      • captionless:無標題欄的窗口,可以自繪標題欄。
      • desktop_widget:桌面 Widget 窗口,將會固定在桌面上,不會隨著顯示桌面而最小化。
    • plain:開啟此配置后窗口將以扁平化狀態(tài)呈現(xiàn),此配置只針對非標準型窗口。對于 Windows XP,則不會顯示窗口陰影;對于 Windows Vista 及更新的系統(tǒng),則不會顯示 Aero 效果(再系統(tǒng)支持及開啟 Aero 的情況下)。
    • system_button:對于支持 Aero 的 Windows,開啟此配置項后,將會始終顯示 Aero 框架所帶的最小化、最大化、關(guān)閉控制按鈕。此配置項僅在支持 Aero 的 Windows、開啟了 transparent_browserstyle 不為 standard 的情況下可以看到效果。
    • transmission_color:穿透顏色可能有兩類取值,none 表示關(guān)閉,#RRGGBB 表示一個 HTML 的顏色值,如 #0000FF,也支持簡寫 #666,屬性值不區(qū)分大小寫。瀏覽器窗口中遇到穿透顏色所指的顏色值時將不再響應(yīng)鼠標事件,直接穿透到其下方的窗口,并且在視覺上可以直接看到下方的窗口。此配置項可以制作不規(guī)則窗口。
    • transparent_browser:對于支持并且開啟了 Aero 的 Windows 系統(tǒng),開啟此配置項后,整個瀏覽器區(qū)域?qū)⒆優(yōu)橥该?。但需?HTML 元素的背景色為透明時才能看到效果。
    • fixed:開啟此配置項后窗口將不能被調(diào)整大小。
    • opacity:透明度可能有兩類取值,none 表示關(guān)閉,0-255 的整數(shù)值表示 透明不透明
    • launch_state:啟動的初始狀態(tài)可能有下面幾種取值:
      • normal 表示默認
      • minimized 表示最小化狀態(tài)
      • maximized 表示最大化狀態(tài)
      • hidden 表示隱藏狀態(tài)
      • fullscreen 表示全屏狀態(tài)
    • launch_width:啟動的初始寬度值可能有下面兩種取值:
      • system_default 表示采用系統(tǒng)默認的寬度
      • 整數(shù)值 表示像素為單位的寬度值
    • launch_height:啟動的初始高度值可能有下面兩種取值:
      • system_default 表示采用系統(tǒng)默認的高度
      • 整數(shù)值 表示像素為單位的高度值
    • launch_x:啟動的初始 X 軸位置可能有下面幾種取值:
      • system_default 表示采用系統(tǒng)默認的 X 軸位置
      • parent_centered 表示相對父窗口水平居中
      • screen_centered 表示相對屏幕水平居中
      • 整數(shù)值 表示像素為單位的 X 軸位置
    • launch_y:啟動的初始 Y 軸位置可能有下面幾種取值:
      • system_default 表示采用系統(tǒng)默認的 Y 軸位置
      • parent_centered 表示相對父窗口垂直居中
      • screen_centered 表示相對屏幕垂直居中
      • 整數(shù)值 表示像素為單位的 Y 軸位置
    • min_width:窗口的最小寬度,單位為像素,0 代表無限制
    • min_height:窗口的最小高度,單位為像素,0 代表無限制
    • max_width:窗口的最大寬度,單位為像素,0 代表無限制
    • max_height:窗口的最大高度,單位為像素,0 代表無限制
    • border_width:在為標準窗口模式下,模擬出來的邊框區(qū)域?qū)挾?,在此寬度之?nèi)可以調(diào)整窗口的大小
  • browser 對象

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號