快應(yīng)用 manifest文件

2020-08-08 17:17 更新

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

manifest


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

config

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

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

system.audio

system.geolocation

system.record

system.request 等。

詳細(xì)用法參見 后臺運行腳本。

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

config.network

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

router

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

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

示例代碼:

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

router.pages

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

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

router.pages.filter

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

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

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

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

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

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

router.errorPage

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

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

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

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

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

display

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

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

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

屬性 類型 默認(rèn)值 描述
backgroundColor String #ffffff 窗口背景顏色
fullScreen Boolean false 是否是全屏模式,默認(rèn)不會同時作用于 titleBar,titleBar 需要繼續(xù)通過 titleBar 控制
titleBar Boolean true 是否顯示 titleBar
titleBarBackgroundColor String #000000 標(biāo)題欄背景色
titleBarTextColor String - 標(biāo)題欄文字顏色
titleBarText String - 標(biāo)題欄文字(也可通過頁面跳轉(zhuǎn)傳遞參數(shù)(titleBarText)設(shè)置)
menu Boolean false 1000~1060 版本用于配置是否顯示標(biāo)題欄右上角菜單按鈕,true 顯示,false 隱藏。
注意:當(dāng)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ū)域,當(dāng)頁面全屏?xí)r,此設(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)欄文字樣式,有亮,暗和自動 當(dāng)為自動時會根據(jù)狀態(tài)欄背景色調(diào)整
statusBarBackgroundColor 1050+ String - 狀態(tài)欄背景色,默認(rèn)值同標(biāo)題欄背景色
statusBarBackgroundOpacity 1050+ float(0-1.0) false 狀態(tài)欄背景色不透明度,默認(rèn)值同標(biāo)題欄背景色不透明度
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 主題模式配置值,非必填,默認(rèn)值為 -1(跟隨系統(tǒng)主題模式)?,F(xiàn)在支持 3 個值: -1(跟隨系統(tǒng)主題模式)、 0(固定日間模式)、1(固定夜間模式)
menuBarData 1070+ Object - menuBar 顯示相關(guān)配置,詳見下面說明
forceDark 1070+ Boolean true 應(yīng)用級別的夜間模式自動反色開關(guān)(僅 Android 10+系統(tǒng)支持),非必填,默認(rèn)值為 true(開啟自動反色)

subpackages 1040+

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

屬性 類型 含義 描述
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 是否顯示,默認(rèn)是否顯示請查看廠商支持表格。當(dāng)fullScreen屬性為 true 或視頻全屏狀態(tài)下,若menuBar不顯式設(shè)置為 true,則 menuBar 會自動隱藏。
menuBarStyle String 樣式 menuBar 樣式,默認(rèn)黑色圖標(biāo) icon 樣式,dark,可以設(shè)置 light 淺色
shareTitle String 分享標(biāo)題 menuBar 中分享功能對應(yīng) 標(biāo)題,默認(rèn)當(dāng)前快應(yīng)用名稱
shareDescription String 分享描述 menuBar 中分享功能對應(yīng)描述,默認(rèn)當(dāng)前快應(yīng)用描述
shareIcon String 分享鏈接 menuBar 中分享功能對應(yīng)圖片,默認(rèn)當(dāng)前快應(yīng)用 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":"分享標(biāo)題",
      "shareDescription":"分享描述",
      "shareIcon":"分享url"
    },
    "pages": {
      "Hello": {
        // 頁面配置,默認(rèn)使用頁面menuBarData配置,頁面無配置使用全局menuBarData配置
        "menuBarData": {
          "menuBar" : true,
          "menuBarStyle":"dark",
          "shareTitle":"分享標(biāo)題",
          "shareDescription":"分享描述",
          "shareIcon":"分享url"
         }
      }
    }
}

menuBar 支持明細(xì)

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

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


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號