首先定义一个状态变量:boolean去准备接收是否为内外屏
然后定义
listenToScreenChanges()
listenToScreenChanges(){
let callbackStatus = (data: display.FoldStatus) => {
let w = display.getDefaultDisplaySync().width;
let h = display.getDefaultDisplaySync().height;
console.log(this.isStatus+'about屏幕宽度:' + w + ', status: ' + data);
console.log(this.isStatus+'about屏幕高度度:' + h + ', status: ' + data);
if (data===2&&w===980){
this.isStatus=true
console.log(this.isStatus+'about屏幕宽度' + w + ', status: ' + data);
}else {
this.isStatus=false
console.log(this.isStatus+'屏幕宽度:' + w + ', status: ' + data)
}
};
display.on('foldStatusChange', callbackStatus);
}
最后在
aboutToAppear()里面执行
值得注意的是这段代码在页面第一次打开的时候不会执行逻辑,只会开启监听,第二点
display.on("foloDisplayModeChange")不能在这里使用会有bug===>在连续进入两个页面后进入外屏然后返回打开内屏会导致监听失效
当然也可以使用AppStorage在全局开启监听用StorageLink或者pop接受就可以了