manifest.json文件中包含了應(yīng)用描述、接口聲明、頁(yè)面路由信息
屬性 | 類型 | 默認(rèn)值 | 必填 | 描述 | |||
---|---|---|---|---|---|---|---|
package | String | - | 是 | 應(yīng)用包名,確認(rèn)與原生應(yīng)用的包名不一致,推薦采用com.company.module的格式,如:com.example.demo | |||
name | String | - | 是 | 應(yīng)用名稱,6個(gè)漢字以內(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)用版本號(hào),從1 自增,推薦每次重新上傳包時(shí)versionCode +1
|
|||
minPlatformVersion | Integer | - | 否 | 支持的最小平臺(tái)版本號(hào),兼容性檢查,避免上線后在低版本平臺(tái)運(yùn)行并導(dǎo)致不兼容;如果不填按照內(nèi)測(cè)版本處理 | |||
features | Array | - | 否 | 接口列表,絕大部分接口都需要在這里聲明,否則不能調(diào)用,詳見每個(gè)接口的文檔說(shuō)明 | |||
config | Object | - | 是 | 系統(tǒng)配置信息,詳見下面說(shuō)明 | |||
router | Object | - | 是 | 路由信息,詳見下面說(shuō)明 | |||
display | Object | - | 否 | UI顯示相關(guān)配置,詳見下面說(shuō)明 |
用于定義系統(tǒng)配置和全局?jǐn)?shù)據(jù)。
屬性 | 類型 | 默認(rèn)值 | 描述 |
---|---|---|---|
logLevel | String | log | 打印日志等級(jí),分為 off,error,warn,info,log,debug |
designWidth | Integer | 750 | 頁(yè)面設(shè)計(jì)基準(zhǔn)寬度,根據(jù)實(shí)際設(shè)備寬度來(lái)縮放元素大小 |
data | Object | - | 全局?jǐn)?shù)據(jù)對(duì)象,屬性名不能以$或_開頭,在頁(yè)面中可通過(guò) this 進(jìn)行訪問(wèn);如果全局?jǐn)?shù)據(jù)屬性與頁(yè)面的數(shù)據(jù)屬性重名,則頁(yè)面初始化時(shí),全局?jǐn)?shù)據(jù)會(huì)覆蓋頁(yè)面中對(duì)應(yīng)的屬性值 |
background 1050+
|
Object | - | 后臺(tái)運(yùn)行配置信息,可使用 features 字段申請(qǐng)需要在后臺(tái)使用的接口(同時(shí)仍需在最外層的 features 字段中聲明)??缮暾?qǐng)的接口為:
system.audio system.geolocation system.record system.request 等。 詳細(xì)用法參見 后臺(tái)運(yùn)行腳本。 |
network 1060+
|
Object | - | 網(wǎng)絡(luò)超時(shí)時(shí)間配置選項(xiàng),詳見下面說(shuō)明 |
參數(shù)名 | 類型 | 默認(rèn)值 | 單位 | 必填 | 描述 |
---|---|---|---|---|---|
connectTimeout | Number | 30000 | ms | 否 | 連接超時(shí)時(shí)間 |
readTimeout | Number | 30000 | ms | 否 | 讀取超時(shí)時(shí)間 |
writeTimeout | Number | 30000 | ms | 否 | 寫入超時(shí)時(shí)間 |
用于定義頁(yè)面的組成和相關(guān)配置信息,如果頁(yè)面沒(méi)有配置路由信息,則在編譯打包時(shí)跳過(guò)。
屬性 | 類型 | 默認(rèn)值 | 必填 | 描述 |
---|---|---|---|---|
entry | String | - | 是 | 首頁(yè)名稱;使用分包功能時(shí),建議將首頁(yè)定義在基礎(chǔ)包中 |
pages | Object | - | 是 | 頁(yè)面配置列表,key 值為頁(yè)面名稱(對(duì)應(yīng)頁(yè)面目錄名,例如 Hello 對(duì)應(yīng)'Hello'目錄),value 為頁(yè)面詳細(xì)配置 page,詳見下面說(shuō)明 |
errorPage 1060+
|
String | - | 否 | 自定義錯(cuò)誤頁(yè)面的 key 值,需要提供一個(gè)在 pages 項(xiàng)里已經(jīng)配置的 key 值 |
"router": {
"entry": "Demo",
"errorPage": "ErrorPage",
"pages": {
"Demo": {
"component": "index"
},
"ErrorPage": {
"component": "index"
},
}
}
用于定義單個(gè)頁(yè)面路由信息。
屬性 | 類型 | 默認(rèn)值 | 必填 | 描述 | |||
---|---|---|---|---|---|---|---|
component | String | - | 是 | 頁(yè)面對(duì)應(yīng)的組件名,與 ux 文件名保持一致,例如'hello' 對(duì)應(yīng) 'hello.ux' | |||
path | String | /<頁(yè)面名稱> | 否 | 頁(yè)面路徑,例如“/user”,不填則默認(rèn)為/<頁(yè)面名稱>。
path 必須唯一,不能和其他 page 的 path 相同。 下面 page 的 path 因?yàn)槿笔?會(huì)被設(shè)置為“/Index”: "Index": {"component": "index"}
|
|||
filter | Object | - | 否 | 聲明頁(yè)面可以處理某種請(qǐng)求 | |||
launchMode 1050+
|
String | standard | 否 | 聲明頁(yè)面的啟動(dòng)模式,支持"singleTask","standard"兩種頁(yè)面啟動(dòng)模式。
標(biāo)識(shí)為"singleTask"模式時(shí)每次打開目標(biāo)頁(yè)面都會(huì)打開已有的目標(biāo)頁(yè)面并回調(diào) onRefresh 生命周期函數(shù),清除該頁(yè)面上打開的其他頁(yè)面,沒(méi)有打開過(guò)此頁(yè)面時(shí)會(huì)創(chuàng)建新的目標(biāo)頁(yè)面實(shí)例。 標(biāo)識(shí)為"standard"模式時(shí)會(huì)每次打開新的目標(biāo)頁(yè)面(多次打開目標(biāo)頁(yè)面地址時(shí)會(huì)存在多個(gè)相同頁(yè)面) |
匹配頁(yè)面某種請(qǐng)求,如請(qǐng)求 uri 和 filter 中 uri 匹配成功,則在匹配頁(yè)面打開。
filter 匹配原則是按照 manifest.json 中 router.pages 中頁(yè)面順序自上往下逐一匹配,uri 匹配成功即會(huì)在該頁(yè)面中使用,故不建議多頁(yè)面采用相同 uri 匹配規(guī)則,可能會(huì)導(dǎo)致頁(yè)面跳轉(zhuǎn)出錯(cuò)。
filter 的結(jié)構(gòu)如下:
"filter": {
"<action>": {
"uri": "<pattern>"
}
}
屬性 | 類型 | 默認(rèn)值 | 必填 | 描述 |
---|---|---|---|---|
action | String | - | 是 | 請(qǐng)求的動(dòng)作,目前僅支持view這一種 |
uri | Pattern | - | 是 | 請(qǐng)求的數(shù)據(jù)的匹配規(guī)則。必須是正則表達(dá)式。如https?://.* 可以匹配所有http和https類型的網(wǎng)址 |
可以處理所有http和https請(qǐng)求的filter定義如下:
"filter": {
"view": {
"uri": "https?://.*"
}
}
當(dāng)頁(yè)面跳轉(zhuǎn)異常時(shí),快應(yīng)用默認(rèn)將會(huì)跳轉(zhuǎn)到 sdk 的默認(rèn)錯(cuò)誤頁(yè),同時(shí)前端 app.ux 也會(huì)收到 onPageNotFound 回調(diào)
此參數(shù)可提供給開發(fā)者配置自定義錯(cuò)誤頁(yè)面
參數(shù):自定義錯(cuò)誤頁(yè)面的參數(shù),需要提供一個(gè)在 pages 項(xiàng)里已經(jīng)配置好的 key 值
注意:開發(fā)者自定義錯(cuò)誤頁(yè)面的時(shí)候,推薦在 script 標(biāo)簽加入以下這段代碼。按照這樣設(shè)置,當(dāng)用戶 deeplink 跳轉(zhuǎn)進(jìn)快應(yīng)用報(bào)錯(cuò)時(shí),點(diǎn)擊返回鍵,可以跳到當(dāng)前快應(yīng)用的首頁(yè),繼續(xù)瀏覽快應(yīng)用的頁(yè)面。
import router from '@system.router'
export default {
onBackPress() {
// 由deep-link等方式進(jìn)來(lái),異常發(fā)生時(shí),一進(jìn)來(lái)首頁(yè)就是Error Page
// 則此時(shí)返回需要手動(dòng)修改,使其跳轉(zhuǎn)到首頁(yè)
if (router.getLength() === 1) {
router.replace({
// 返回首頁(yè)
path: '/'
})
return true
}
}
}
用于定義與 UI 顯示相關(guān)的配置。
如果在 display 對(duì)象下定義以下屬性值,則生效范圍為此快應(yīng)用全部頁(yè)面;
如果在 display.pages 對(duì)象里的頁(yè)面 key 值下定義以下屬性值,則生效范圍僅為此頁(yè)面;并且,此處指定的頁(yè)面 display 屬性值,優(yōu)先級(jí)高于上述的全局范圍的屬性值
屬性 | 類型 | 默認(rèn)值 | 描述 |
---|---|---|---|
backgroundColor | String | #ffffff | 窗口背景顏色 |
fullScreen | Boolean | false | 是否是全屏模式,默認(rèn)不會(huì)同時(shí)作用于 titleBar,titleBar 需要繼續(xù)通過(guò) titleBar 控制 |
titleBar | Boolean | true | 是否顯示 titleBar |
titleBarBackgroundColor | String | #000000 | 標(biāo)題欄背景色 |
titleBarTextColor | String | - | 標(biāo)題欄文字顏色 |
titleBarText | String | - | 標(biāo)題欄文字(也可通過(guò)頁(yè)面跳轉(zhuǎn)傳遞參數(shù)(titleBarText)設(shè)置) |
menu | Boolean | false | 1000~1060 版本用于配置是否顯示標(biāo)題欄右上角菜單按鈕,true 顯示,false 隱藏。
注意:當(dāng) menu 值設(shè)為 true 時(shí),方可在 1000~1060 版本點(diǎn)擊菜單按鈕,或 1070 版本點(diǎn)擊menuBar 左邊菜單按鈕時(shí),觸發(fā)前端的onMenuPress 回調(diào)(若前端已實(shí)現(xiàn)此回調(diào)方法) |
windowSoftInputMode 1030+
|
adjustPan | adjustResize | adjustPan | 軟鍵盤彈出時(shí)為保證輸入框可見,頁(yè)面的調(diào)整方式。 adjustPan:上移頁(yè)面; adjustResize:壓縮頁(yè)面顯示區(qū)域,當(dāng)頁(yè)面全屏?xí)r,此設(shè)置不生效 |
pages | Object | - | 各個(gè)頁(yè)面的顯示樣式,key 為頁(yè)面名(與路由中的頁(yè)面名保持一致),value 為窗口顯示樣式,頁(yè)面樣式覆蓋 default 樣式。 |
orientation 1040+
|
String | portrait | 頁(yè)面顯示橫屏還是豎屏
portrait:豎屏 landscape:橫屏 |
statusBarImmersive 1050+
|
Boolean | false | 是否顯示沉浸式狀態(tài)欄,顯示沉浸式狀態(tài)需要隱藏 titleBar |
statusBarTextStyle 1050+
|
light | dark | auto | auto | 狀態(tài)欄文字樣式,有亮,暗和自動(dòng) 當(dāng)為自動(dòng)時(shí)會(huì)根據(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 時(shí)才會(huì)生效
none:不會(huì)在異形區(qū)域繪制,異形區(qū)域加黑處理 portrait:豎屏下內(nèi)容會(huì)在異形區(qū)域繪制 landscape:橫屏下內(nèi)容會(huì)在異形區(qū)域繪制 portrait|landscape:豎屏和橫屏下都會(huì)在異形區(qū)域繪制 |
textSizeAdjust 1060+
|
none | auto | none | 系統(tǒng)字體大小變化時(shí),文本類型組件字體大小的調(diào)整方式
none:不跟隨系統(tǒng)字體大小變化 auto:跟隨系統(tǒng)字體大小變化 |
themeMode 1070+
|
Number | -1 | 主題模式配置值,非必填,默認(rèn)值為 -1(跟隨系統(tǒng)主題模式)。現(xiàn)在支持 3 個(gè)值: -1(跟隨系統(tǒng)主題模式)、 0(固定日間模式)、1(固定夜間模式) |
menuBarData 1070+
|
Object | - | menuBar 顯示相關(guān)配置,詳見下面說(shuō)明 |
forceDark 1070+
|
Boolean | true | 應(yīng)用級(jí)別 的夜間模式自動(dòng)反色開關(guān)(僅 Android 10+系統(tǒng)支持),非必填,默認(rèn)值為 true(開啟自動(dòng)反色) |
1040+
用于定義分包的相關(guān)配置。分包的詳細(xì)使用方法參見 分包加載。
屬性 | 類型 | 含義 | 描述 | ||||
---|---|---|---|---|---|---|---|
name | String | 分包名稱 | 分包的名稱,用于區(qū)分不同分包。只能是字母數(shù)字和下劃線,不允許包含其他符號(hào),"base"作為基礎(chǔ)包的保留名稱(無(wú)需為基礎(chǔ)包定義分包配置) | ||||
resource | String | 資源目錄 | 分包資源根目錄,相對(duì)于源碼目錄"src"的相對(duì)路徑。只能是字母數(shù)字以及"_"、"-"、"/"組成,第一個(gè)字符不允許為"-"和"/",不允許包含其他符號(hào)。編譯時(shí)會(huì)把該目錄下的所有資源都打包到這個(gè)分包中去 |
{
"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"
}
}
}
}
用于定義 menuBar 的相關(guān)配置。
屬性 | 類型 | 含義 | 描述 |
---|---|---|---|
menuBar | Boolean | 是否顯示 | 配置 menuBar 是否顯示,默認(rèn)是否顯示請(qǐng)查看廠商支持表格。當(dāng)fullScreen 屬性為 true 或視頻全屏狀態(tài)下,若menuBar 不顯式設(shè)置為 true,則 menuBar 會(huì)自動(dòng)隱藏。 |
menuBarStyle | String | 樣式 | menuBar 樣式,默認(rèn)黑色圖標(biāo) icon 樣式,dark,可以設(shè)置 light 淺色 |
shareTitle | String | 分享標(biāo)題 | menuBar 中分享功能對(duì)應(yīng) 標(biāo)題,默認(rèn)當(dāng)前快應(yīng)用名稱 |
shareDescription | String | 分享描述 | menuBar 中分享功能對(duì)應(yīng)描述,默認(rèn)當(dāng)前快應(yīng)用描述 |
shareIcon | String | 分享鏈接 | menuBar 中分享功能對(duì)應(yīng)圖片,默認(rèn)當(dāng)前快應(yīng)用 icon |
注意:實(shí)際代碼中 json 文件不能包含注釋行,此處注釋僅為說(shuō)明用
{
"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": {
// 頁(yè)面配置,默認(rèn)使用頁(yè)面menuBarData配置,頁(yè)面無(wú)配置使用全局menuBarData配置
"menuBarData": {
"menuBar" : true,
"menuBarStyle":"dark",
"shareTitle":"分享標(biāo)題",
"shareDescription":"分享描述",
"shareIcon":"分享url"
}
}
}
}
如果以下沒(méi)有特別備注,則 menuBar 在此廠商手機(jī) 1070+ 的 sdk 上會(huì)默認(rèn)顯示。同時(shí),開發(fā)者可通過(guò)配置 menuBarData.menuBar 決定是否顯示。
廠商 | 支持 | 備注 |
---|---|---|
預(yù)覽版 | YES | |
OPPO | YES | |
小米 | YES | 1070 版本默認(rèn)隱藏,可設(shè)置menuBarData.menuBar 參數(shù)為true 來(lái)顯示 |
vivo | YES | |
華為 | YES | 1070 版本默認(rèn)隱藏。僅在項(xiàng)目設(shè)置manifest.json 的minPlatformVersion 大于等于1070 時(shí),快應(yīng)用會(huì)顯示 menuBar。
且不可以通過(guò)設(shè)置 menuBarData.menuBar 為false 來(lái)隱藏 menuBar。 |
一加 | YES | |
中興 | YES | |
努比亞 | YES | |
金立 | YES | 1070 版本默認(rèn)隱藏,可設(shè)置menuBarData.menuBar 參數(shù)為true 來(lái)顯示 |
聯(lián)想 | YES | 1070 版本默認(rèn)隱藏,可設(shè)置menuBarData.menuBar 參數(shù)為true 來(lái)顯示 |
魅族 | YES | 1070 版本默認(rèn)隱藏,可設(shè)置menuBarData.menuBar 參數(shù)為true 來(lái)顯示 |
更多建議: