HarmonyOS鸿蒙Next中createWindow方法在Stage模型中为何无法创建TYPE_APP类型的窗口呢?
HarmonyOS鸿蒙Next中createWindow方法在Stage模型中为何无法创建TYPE_APP类型的窗口呢? https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#windowtype7
TYPE_APP | 0 |
---|---|
表示应用子窗口。 | 模型约束:此接口仅可在FA模型下使用。 |
如上面的文档描述,TYPE_APP类型的窗口只能在FA模型下使用。
但是我现在使用的是Stage模型开发,过程中有一个需求,想要创建子窗口,并且希望能够让子窗口与某个之前创建出来的子窗口A相关联,这样当子窗口A创建出一系列相关子窗口BCD的时候,当我关闭子窗口A,就可以连带把BCD都关掉。另外,还希望能在打开窗口的时候直接设置窗口的宽高。这些需求我看用createWindow窗口比较合适,其中的Configuration有丰富的配置控制项。然而,惊奇的发现文档中提示在Stage模型下无法使用。。。
请问大佬们,这是为什么?有没有什么替代方案(当然也可以自己实现联动逻辑,那就是另一回事了),或者未来会放开吗?
更多关于HarmonyOS鸿蒙Next中createWindow方法在Stage模型中为何无法创建TYPE_APP类型的窗口呢?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
使用这个api:createSubWindow,和你要求的差不多。设置子窗口大小,可以参考这篇帖子:https://developer.huawei.com/consumer/cn/forum/topic/0201169066669531008?fid=0109140870620153026
更多关于HarmonyOS鸿蒙Next中createWindow方法在Stage模型中为何无法创建TYPE_APP类型的窗口呢?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
开发者您好,关于您咨询的问题,您可参考:创建该WindowStage实例下的子窗口
你好。
stage模型创建子窗口,需要使用windowStage.createSubWindow("testSubWindow");
```typescript
// EntryAbility.ets
import { UIAbility } from '[@kit](/user/kit).AbilityKit';
import { BusinessError } from '[@kit](/user/kit).BasicServicesKit';
export default class EntryAbility extends UIAbility {
// ...
onWindowStageCreate(windowStage: window.WindowStage): void {
console.info('onWindowStageCreate');
let windowClass: window.Window | undefined = undefined;
// 创建子窗
try {
let subWindow = windowStage.createSubWindow("testSubWindow");
subWindow.then((data) => {
if (data == null) {
console.error("Failed to create the subWindow. Cause: The data is empty");
return;
}
windowClass = data;
let promise = windowClass.setSubWindowModal(true);
promise.then(() => {
console.info('Succeeded in setting subwindow modal');
}).catch((err: BusinessError) => {
console.error(`Failed to set subwindow modal. Cause code: ${err.code}, message: ${err.message}`);
});
});
} catch (exception) {
console.error(`Failed to create the subWindow. Cause code: ${exception.code}, message: ${exception.message}`);
}
}
}
在HarmonyOS鸿蒙Next的Stage模型中,createWindow
方法无法创建TYPE_APP
类型的窗口,主要是因为Stage模型采用了新的窗口管理机制。Stage模型将应用窗口划分为不同的层级,TYPE_APP
类型的窗口通常用于应用的主窗口,而在Stage模型中,主窗口的创建和管理由系统自动处理,开发者无需手动创建。开发者应使用系统提供的WindowStage
来管理应用窗口,确保窗口生命周期与应用的逻辑一致。