Entry的Ability中是否可以loadContent另一个hsp的pages

在Entry的Ability中是否可以loadContent另一个hsp的pages呢?如果可以应该如何实现?希望在entry中只实现启动逻辑,但业务逻辑和pages都放在其他的hsp module中。

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

可以使用loadContentByName和命名路由实现,参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#loadcontentbyname11

https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/ui/arkts-routing.md/#%E5%91%BD%E5%90%8D%E8%B7%AF%E7%94%B1

样例代码:

Entry包:

//EntryAbility.ets
......
import {entryName} from 'hsplibrary'
export default class EntryAbility extends UIAbility {
  ......

  onWindowStageCreate(windowStage: window.WindowStage) {
    let storage: LocalStorage = new LocalStorage();
    windowStage.loadContentByName(entryName, storage, (err, data) => {
      if (err.code) {
        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
        return;
      }
      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
    });
  }

  ......
}

Hsp包:

// Index.ets
export const entryName : string = 'Index';

@Entry({ routeName: entryName, storage: LocalStorage.getShared() })
@Component
struct Index {
  @State message: string = 'Hello World From Hsp';

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}
分享
微博
QQ
微信
回复
14h前
相关问题
entry如何拉起另一个ModuleAbility
4230浏览 • 1回复 待解决
HAR能读到另一个HAR里rawfile文件吗
1840浏览 • 1回复 待解决