HarmonyOS 有没有应用级别的组件, 跨过多个页面都展示

HarmonyOS
18h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

可以参考HarmonyOS文档对应的这篇文档:管理应用窗口(Stage模型->设置应用子窗口)。

import { window } from '@kit.ArkUI';
import { BusinessError } from '@kit.BasicServicesKit';
export default  class StageManager {
  static obj: StageManager = new StageManager();
  private constructor() { }
  windowStage_?: window.WindowStage
  sub_windowClass?: window.Window
  static shareInstance(): StageManager {
    return StageManager.obj
  }
   showSubWindow(windowStage_: window.WindowStage) {
    StageManager.shareInstance().windowStage_ = windowStage_
     //todo
    windowStage_.createSubWindow("DebugSmallWin", (err: BusinessError, data) => {
      if (err) {
        console.log('createSubWindow error' + err.code)
      }
      StageManager.shareInstance().sub_windowClass = data
      let sub_windowClass = data
      //subWindow的坐标
      sub_windowClass.moveWindowTo(200, 200, (err: BusinessError) => {
        if (err) {
          console.log('moveWindowTo error' + err.code)
        }
      })
      //subWindow的尺寸
      sub_windowClass.resize(300, 300, (err: BusinessError) => {
        if (err) {
          console.log('resize error' + err.code)
        }
      })
      //todo
      sub_windowClass.setUIContent('pages/Page01')
      sub_windowClass.showWindow()
    })
  }
   destroySubWindow() {
    if (StageManager.shareInstance().sub_windowClass) {
      StageManager.shareInstance().sub_windowClass!.destroyWindow((err: BusinessError) => {
      })
    }
  }
}

上面是一个自定义类。将todo的内容改为自己的。在onWindowStageCreate调用一下试试。

nWindowStageCreate(windowStage: window.WindowStage): void {
//正常的加载窗口
windowStage.loadContent('pages/Index', (err, data) => {
});
//加载DEBUG的子窗口
StageManager.shareInstance().showSubWindow(windowStage)
}
分享
微博
QQ
微信
回复
16h前
相关问题
是否支持项目级别的@Styles?
401浏览 • 2回复 待解决
有没有实时相机预览结合OCR识别的demo
1753浏览 • 1回复 待解决
HarmonyOS 有没有URLEncoder组件
535浏览 • 2回复 待解决
HarmonyOS 有没有图表组件
426浏览 • 1回复 待解决