获取窗口内容规避的区域值全部都是0

let avoidArea = currentWindow.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM)console.log("=======statusHeight: ", JSON.stringify(avoidArea));
HarmonyOS
2024-04-29 17:06:59
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
人间冰美式

getlastWindow。目前该接口用于获取最上层的窗口。https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-window-0000001820880785#ZH-CN_TOPIC_0000001820880785__windowgetlastwindow9

根据接口定义,没有办法确定在调用该方法时是否存在子窗口。如果需要保证一直能获取到窗口的避让区域,可以使用以下代码:

public static getStatusHeight(): Promise<number> { 
return this.windowStage.getMainWindow()…then(currentWindow => { 
let avoidArea = currentWindow.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM) 
let statusHeight = avoidArea.topRect.height; 
console.log("statusHeight: ", JSON.stringify(avoidArea)); 
return statusHeight; 
}).catch((e) => { 
hilog.error(0x0000, TAG, ‘%{public}s’, 'Failed to obtain the default display object. Code: ’ + JSON.stringify(e)); 
return 0; 
}) 
}

获取windowStage方式需要在entryAbility中获取:

onWindowStageCreate(windowStage: window.WindowStage): void { 
  // Main window is created, set main page for this ability 
  hilog.info(0x0000, ‘testTag’, ‘%{public}s’, ‘Ability onWindowStageCreate’); 
windowStage.loadContent(‘pages/Page1’, (err, data) => { 
if (err.code) { 
hilog.error(0x0000, ‘testTag’, ‘Failed to load the content. Cause: %{public}s’, JSON.stringify(err) ?? ‘’); 
return; 
} 
// 将windowStage进行持久化以便子窗口调用 
AppStorage.setOrCreate(“windowStage”,windowStage); 
hilog.info(0x0000, ‘testTag’, ‘Succeeded in loading the content. Data: %{public}s’, JSON.stringify(data) ?? ‘’); 
}); 
}
分享
微博
QQ
微信
回复
2024-04-30 10:56:06
相关问题
Python 后台窗口内容输入
4629浏览 • 0回复 待解决
HarmonyOS 获取oaid都是0
903浏览 • 1回复 待解决
napi返回ArrayBuffer有长度但是内容都是0
1131浏览 • 1回复 待解决
请问如何获取窗口宽度
1878浏览 • 1回复 待解决
如何获取手势区域高度
339浏览 • 1回复 待解决
如何获取窗口宽高信息
2336浏览 • 1回复 待解决
如何获取当前window窗口方向
408浏览 • 1回复 待解决
如何获取窗口window宽度
1982浏览 • 1回复 待解决
如何获取当前窗口宽度
490浏览 • 1回复 待解决
如何根据组件内容大小修改浮动窗口
1780浏览 • 1回复 待解决
怎么获取select选中
7674浏览 • 1回复 待解决
求大佬告知如何获取窗口宽度
1706浏览 • 1回复 待解决
如何获取WindowStage实例下窗口
483浏览 • 1回复 待解决