關於Ability的半屏、全屏等模式的配置請參考我另一篇文章:HarmonyOS(鴻蒙)應用/服務開發window_modal配置說明。這裏就不在贅述了。
我在開發鴻蒙FA應用時遇到通過半屏Ability拉起全屏Ability時,如果window_modal爲0,則全屏Ability會沒有狀態欄(狀態欄爲透明,能看到桌面壁紙)的情況。如果window_modal爲2則會出現狀態欄顏色無法自定義的問題(尤其是在dark模式下不能忍受)。
經過排查是由於需要全屏的Ability在config.json中沒有配置metaData
導致的:
原來的配置
{
"visible": true,
"name": "com.baidu.testApp.ConnectHelperAbility",
"configChanges": ["orientation"],
"icon": "$media:icon",
"description": "$string:empty_description",
"label": "$string:device_ConnectHelperAbility",
"type": "page",
"launchType": "standard"
}
增加
"metaData": {
"customizeData": [
{
"name": "hwc-theme",
"value": "androidhwext:style/Theme.Emui.Light.NoTitleBar"
}
]
}
最終爲下面這樣則可以解決
{
"visible": true,
"name": "com.baidu.testApp.ConnectHelperAbility",
"configChanges": ["orientation"],
"icon": "$media:icon",
"description": "$string:empty_description",
"label": "$string:device_ConnectHelperAbility",
"type": "page",
"launchType": "standard",
"metaData": {
"customizeData": [
{
"name": "hwc-theme",
"value": "androidhwext:style/Theme.Emui.Light.NoTitleBar"
}
]
}
}