快應用 manifest文件

2020-08-08 17:17 更新

manifest.json文件中包含了應用描述、接口聲明、頁面路由信息

manifest


屬性 類型 默認值 必填 描述
package String - 應用包名,確認與原生應用的包名不一致,推薦采用com.company.module的格式,如:com.example.demo
name String - 應用名稱,6個漢字以內(nèi),與應用商店保存的名稱一致,用于在桌面圖標、彈窗等處顯示應用名稱
icon String - 應用圖標,提供192x192大小的即可
versionName String - 應用版本名稱,如:"1.0"
versionCode Integer - 應用版本號,從1自增,推薦每次重新上傳包時versionCode+1
minPlatformVersion Integer - 支持的最小平臺版本號,兼容性檢查,避免上線后在低版本平臺運行并導致不兼容;如果不填按照內(nèi)測版本處理
features Array - 接口列表,絕大部分接口都需要在這里聲明,否則不能調(diào)用,詳見每個接口的文檔說明
config Object - 系統(tǒng)配置信息,詳見下面說明
router Object - 路由信息,詳見下面說明
display Object - UI顯示相關(guān)配置,詳見下面說明

config

用于定義系統(tǒng)配置和全局數(shù)據(jù)。

屬性 類型 默認值 描述
logLevel String log 打印日志等級,分為 off,error,warn,info,log,debug
designWidth Integer 750 頁面設(shè)計基準寬度,根據(jù)實際設(shè)備寬度來縮放元素大小
data Object - 全局數(shù)據(jù)對象,屬性名不能以$或_開頭,在頁面中可通過 this 進行訪問;如果全局數(shù)據(jù)屬性與頁面的數(shù)據(jù)屬性重名,則頁面初始化時,全局數(shù)據(jù)會覆蓋頁面中對應的屬性值
background 1050+ Object - 后臺運行配置信息,可使用 features 字段申請需要在后臺使用的接口(同時仍需在最外層的 features 字段中聲明)??缮暾埖慕涌跒椋?

system.audio

system.geolocation

system.record

system.request 等。

詳細用法參見 后臺運行腳本。

network 1060+ Object - 網(wǎng)絡(luò)超時時間配置選項,詳見下面說明

config.network

參數(shù)名 類型 默認值 單位 必填 描述
connectTimeout Number 30000 ms 連接超時時間
readTimeout Number 30000 ms 讀取超時時間
writeTimeout Number 30000 ms 寫入超時時間

router

用于定義頁面的組成和相關(guān)配置信息,如果頁面沒有配置路由信息,則在編譯打包時跳過。

屬性 類型 默認值 必填 描述
entry String - 首頁名稱;使用分包功能時,建議將首頁定義在基礎(chǔ)包中
pages Object - 頁面配置列表,key 值為頁面名稱(對應頁面目錄名,例如 Hello 對應'Hello'目錄),value 為頁面詳細配置 page,詳見下面說明
errorPage 1060+ String - 自定義錯誤頁面的 key 值,需要提供一個在 pages 項里已經(jīng)配置的 key 值

示例代碼:

"router": {
  "entry": "Demo",
  "errorPage": "ErrorPage",
  "pages": {
    "Demo": {
      "component": "index"
    },
    "ErrorPage": {
      "component": "index"
     },
  }
}

router.pages

用于定義單個頁面路由信息。

屬性 類型 默認值 必填 描述
component String - 頁面對應的組件名,與 ux 文件名保持一致,例如'hello' 對應 'hello.ux'
path String /<頁面名稱> 頁面路徑,例如“/user”,不填則默認為/<頁面名稱>。
path 必須唯一,不能和其他 page 的 path 相同。
下面 page 的 path 因為缺失,會被設(shè)置為“/Index”:
"Index": {"component": "index"}
filter Object - 聲明頁面可以處理某種請求
launchMode 1050+ String standard 聲明頁面的啟動模式,支持"singleTask","standard"兩種頁面啟動模式。
標識為"singleTask"模式時每次打開目標頁面都會打開已有的目標頁面并回調(diào) onRefresh 生命周期函數(shù),清除該頁面上打開的其他頁面,沒有打開過此頁面時會創(chuàng)建新的目標頁面實例。
標識為"standard"模式時會每次打開新的目標頁面(多次打開目標頁面地址時會存在多個相同頁面)

router.pages.filter

匹配頁面某種請求,如請求 uri 和 filter 中 uri 匹配成功,則在匹配頁面打開。

filter 匹配原則是按照 manifest.json 中 router.pages 中頁面順序自上往下逐一匹配,uri 匹配成功即會在該頁面中使用,故不建議多頁面采用相同 uri 匹配規(guī)則,可能會導致頁面跳轉(zhuǎn)出錯。

filter 的結(jié)構(gòu)如下:

"filter": {
  "<action>": {
    "uri": "<pattern>"
  }
}
屬性 類型 默認值 必填 描述
action String - 請求的動作,目前僅支持view這一種
uri Pattern - 請求的數(shù)據(jù)的匹配規(guī)則。必須是正則表達式。如https?://.*可以匹配所有http和https類型的網(wǎng)址

可以處理所有http和https請求的filter定義如下:

"filter": {
  "view": {
    "uri": "https?://.*"
  }
}

router.errorPage

當頁面跳轉(zhuǎn)異常時,快應用默認將會跳轉(zhuǎn)到 sdk 的默認錯誤頁,同時前端 app.ux 也會收到 onPageNotFound 回調(diào)

此參數(shù)可提供給開發(fā)者配置自定義錯誤頁面

參數(shù):自定義錯誤頁面的參數(shù),需要提供一個在 pages 項里已經(jīng)配置好的 key 值

注意:開發(fā)者自定義錯誤頁面的時候,推薦在 script 標簽加入以下這段代碼。按照這樣設(shè)置,當用戶 deeplink 跳轉(zhuǎn)進快應用報錯時,點擊返回鍵,可以跳到當前快應用的首頁,繼續(xù)瀏覽快應用的頁面。

import router from '@system.router'
export default {
  onBackPress() {
    // 由deep-link等方式進來,異常發(fā)生時,一進來首頁就是Error Page
    // 則此時返回需要手動修改,使其跳轉(zhuǎn)到首頁
    if (router.getLength() === 1) {
      router.replace({
        // 返回首頁
        path: '/'
      })
      return true
    }
  }
}

display

用于定義與 UI 顯示相關(guān)的配置。

如果在 display 對象下定義以下屬性值,則生效范圍為此快應用全部頁面;

如果在 display.pages 對象里的頁面 key 值下定義以下屬性值,則生效范圍僅為此頁面;并且,此處指定的頁面 display 屬性值,優(yōu)先級高于上述的全局范圍的屬性值

屬性 類型 默認值 描述
backgroundColor String #ffffff 窗口背景顏色
fullScreen Boolean false 是否是全屏模式,默認不會同時作用于 titleBar,titleBar 需要繼續(xù)通過 titleBar 控制
titleBar Boolean true 是否顯示 titleBar
titleBarBackgroundColor String #000000 標題欄背景色
titleBarTextColor String - 標題欄文字顏色
titleBarText String - 標題欄文字(也可通過頁面跳轉(zhuǎn)傳遞參數(shù)(titleBarText)設(shè)置)
menu Boolean false 1000~1060 版本用于配置是否顯示標題欄右上角菜單按鈕,true 顯示,false 隱藏。
注意:menu值設(shè)為 true 時,方可在 1000~1060 版本點擊菜單按鈕,或 1070 版本點擊menuBar左邊菜單按鈕時,觸發(fā)前端的onMenuPress回調(diào)(若前端已實現(xiàn)此回調(diào)方法)
windowSoftInputMode 1030+ adjustPan | adjustResize adjustPan 軟鍵盤彈出時為保證輸入框可見,頁面的調(diào)整方式?!?adjustPan:上移頁面; adjustResize:壓縮頁面顯示區(qū)域,當頁面全屏時,此設(shè)置不生效
pages Object - 各個頁面的顯示樣式,key 為頁面名(與路由中的頁面名保持一致),value 為窗口顯示樣式,頁面樣式覆蓋 default 樣式。
orientation 1040+ String portrait 頁面顯示橫屏還是豎屏
portrait:豎屏
landscape:橫屏
statusBarImmersive 1050+ Boolean false 是否顯示沉浸式狀態(tài)欄,顯示沉浸式狀態(tài)需要隱藏 titleBar
statusBarTextStyle 1050+ light | dark | auto auto 狀態(tài)欄文字樣式,有亮,暗和自動 當為自動時會根據(jù)狀態(tài)欄背景色調(diào)整
statusBarBackgroundColor 1050+ String - 狀態(tài)欄背景色,默認值同標題欄背景色
statusBarBackgroundOpacity 1050+ float(0-1.0) false 狀態(tài)欄背景色不透明度,默認值同標題欄背景色不透明度
fitCutout 1060+ String - 是否在異形區(qū)域繪制內(nèi)容。豎屏下只有在 fullScreen 為 true 時才會生效
none:不會在異形區(qū)域繪制,異形區(qū)域加黑處理
portrait:豎屏下內(nèi)容會在異形區(qū)域繪制
landscape:橫屏下內(nèi)容會在異形區(qū)域繪制
portrait|landscape:豎屏和橫屏下都會在異形區(qū)域繪制
textSizeAdjust 1060+ none | auto none 系統(tǒng)字體大小變化時,文本類型組件字體大小的調(diào)整方式
none:不跟隨系統(tǒng)字體大小變化 auto:跟隨系統(tǒng)字體大小變化
themeMode 1070+ Number -1 主題模式配置值,非必填,默認值為 -1(跟隨系統(tǒng)主題模式)。現(xiàn)在支持 3 個值: -1(跟隨系統(tǒng)主題模式)、 0(固定日間模式)、1(固定夜間模式)
menuBarData 1070+ Object - menuBar 顯示相關(guān)配置,詳見下面說明
forceDark 1070+ Boolean true 應用級別的夜間模式自動反色開關(guān)(僅 Android 10+系統(tǒng)支持),非必填,默認值為 true(開啟自動反色)

subpackages 1040+

用于定義分包的相關(guān)配置。分包的詳細使用方法參見 分包加載。

屬性 類型 含義 描述
name String 分包名稱 分包的名稱,用于區(qū)分不同分包。只能是字母數(shù)字和下劃線,不允許包含其他符號,"base"作為基礎(chǔ)包的保留名稱(無需為基礎(chǔ)包定義分包配置)
resource String 資源目錄 分包資源根目錄,相對于源碼目錄"src"的相對路徑。只能是字母數(shù)字以及"_"、"-"、"/"組成,第一個字符不允許為"-"和"/",不允許包含其他符號。編譯時會把該目錄下的所有資源都打包到這個分包中去

示例:

{
  "package": "com.company.unit",
  "name": "appName",
  "icon": "/Common/icon.png",
  "versionName": "1.0",
  "versionCode": 1,
  "minPlatformVersion": 1000,
  "features": [
    { "name": "system.network" }
  ],
  "permissions": [
    { "origin": "*" }
  ],
  "config": {
    "logLevel": "off"
  },
  "router": {
    "entry": "Hello",
    "pages": {
      "Hello": {
        "component": "hello",
        "path": "/",
        "filter": {
          "view": {
            "uri": "https?://.*"
          }
        }
      }
    }
  },
  "display": {
    "backgroundColor": "#ffffff",
    "fullScreen": false,
    "titleBar": true,
    "titleBarBackgroundColor": "#000000",
    "titleBarTextColor": "#fffff",
    "pages": {
      "Hello": {
        "backgroundColor": "#eeeeee",
        "fullScreen": true,
        "titleBarBackgroundColor": "#0000ff",
        "titleBarText": "Hello"
      }
    }
  }
}

menuBarData

menuBar

用于定義 menuBar 的相關(guān)配置。

屬性 類型 含義 描述
menuBar Boolean 是否顯示 配置 menuBar 是否顯示,默認是否顯示請查看廠商支持表格。當fullScreen屬性為 true 或視頻全屏狀態(tài)下,若menuBar不顯式設(shè)置為 true,則 menuBar 會自動隱藏。
menuBarStyle String 樣式 menuBar 樣式,默認黑色圖標 icon 樣式,dark,可以設(shè)置 light 淺色
shareTitle String 分享標題 menuBar 中分享功能對應 標題,默認當前快應用名稱
shareDescription String 分享描述 menuBar 中分享功能對應描述,默認當前快應用描述
shareIcon String 分享鏈接 menuBar 中分享功能對應圖片,默認當前快應用 icon

示例:

注意:實際代碼中 json 文件不能包含注釋行,此處注釋僅為說明用

{
  "package": "com.company.unit",
  "name": "appName",
  "icon": "/Common/icon.png",
  "versionName": "1.0",
  "versionCode": 1,
  "minPlatformVersion": 1000,
  "display": {
    "menuBarData": {
      // 全局配置
      "menuBar" : true,
      "menuBarStyle":"dark",
      "shareTitle":"分享標題",
      "shareDescription":"分享描述",
      "shareIcon":"分享url"
    },
    "pages": {
      "Hello": {
        // 頁面配置,默認使用頁面menuBarData配置,頁面無配置使用全局menuBarData配置
        "menuBarData": {
          "menuBar" : true,
          "menuBarStyle":"dark",
          "shareTitle":"分享標題",
          "shareDescription":"分享描述",
          "shareIcon":"分享url"
         }
      }
    }
}

menuBar 支持明細

如果以下沒有特別備注,則 menuBar 在此廠商手機 1070+ 的 sdk 上會默認顯示。同時,開發(fā)者可通過配置 menuBarData.menuBar 決定是否顯示。

廠商 支持 備注
預覽版 YES
OPPO YES
小米 YES 1070 版本默認隱藏,可設(shè)置menuBarData.menuBar參數(shù)為true 來顯示
vivo YES
華為 YES 1070 版本默認隱藏。僅在項目設(shè)置manifest.jsonminPlatformVersion大于等于1070時,快應用會顯示 menuBar。
且不可以通過設(shè)置menuBarData.menuBarfalse來隱藏 menuBar。
一加 YES
中興 YES
努比亞 YES
金立 YES 1070 版本默認隱藏,可設(shè)置menuBarData.menuBar參數(shù)為true 來顯示
聯(lián)想 YES 1070 版本默認隱藏,可設(shè)置menuBarData.menuBar參數(shù)為true 來顯示
魅族 YES 1070 版本默認隱藏,可設(shè)置menuBarData.menuBar參數(shù)為true 來顯示


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號