鸿蒙系统支持上下分屏,可以同时使用两个应用,比如:
有时候我们需要在分屏的时候处理相关逻辑,那到底该如何处理了,
首先在UIAbility下的onWindowStageCreate中进行监听
//监听窗口变化let windowClass: window.Window | undefined = undefined;windowStage.getMainWindow((err: BusinessError, data) => {const errCode: number = err.code;if (errCode) {console.error(`Failed to obtain the main window. Cause code: ${err.code}, message: ${err.message}`);return;}windowClass = data;windowClass.on('windowStatusChange', (WindowStatusType) => {logger.info('Succeeded in enabling the listener for window status changes. Data: ' +JSON.stringify(WindowStatusType));EventBus.send(EventTypeEnum.MINE_PAGE_WINDOW, JSON.stringify(WindowStatusType))});});
使用windowClass.on('windowStatusChange'函数监听状态,然后在发送事件给接收方
打印日志发现,不等于1基本上是在缩放窗口操作
接收事件
EventBus.listen(EventTypeEnum.MINE_PAGE_WINDOW, (data?: string) => {this.isNeedScroll = (data != undefined && data != '1')})
到这里就完成了上下屏或者其它窗口变化的功能