最核心的代码
window.getLastWindow(getContext()).then((view) => {
let node = new ComponentContent(view.getUIContext(), wrapBuilder(customDialogBuilder), "123")
view.getUIContext().getPromptAction().openCustomDialog(node)
});
@Builder
export function customDialogBuilder(text:string) {
Stack() {
// Image($r("app.media.bg_alert_new")).width("100%").height("50%").alignSelf(ItemAlign.Start)
Column() {
Text(text).fontSize(20).margin({bottom:10, top: 10})
}.padding(20).borderRadius(15).clip(true)
}
}
如果全局只有一个 window 那可以在 EntryAbility中将最上层window的uicontent给缓存起来
onWindowStageCreate(windowStage: window.WindowStage): void {
let ctx =
windowStage.getMainWindowSync().getUIContext()
ctx 存到全局一个变量内即可,
使用时直接获取
}