鸿蒙HarmonyOS应用如何设置启动页

发布于 1周前 作者 phonegap100 最后一次编辑是 5天前 来自 鸿蒙OS

鸿蒙HarmonyOS应用如何设置启动页

现在app启动后会白屏一下然后才加载到页面。iOS和android都可以设置启动页,不知道鸿蒙怎么弄,用的是ArkUI。在线求教。。。

9 回复
楼主解决了吗?

更多关于鸿蒙HarmonyOS应用如何设置启动页的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


楼主解决了吗?有没有官方解决方案啊
第一个页面启动后,定时跳转到指定的页面

把第一个入口文件设置为启动页呀

cke_745.png

然后在启动页判断是否登录 然后走后面的流程

我是这样操作的哈

但是还会有短暂白屏的情况,这种是如何处理的呀,入口文件为启动页,在加载入口文件之前就会有短暂白屏的情况

模拟器仍然会有白屏,不知道真机有没有哦,而且启动图片加载都改成同步了也是一样

现在解决了吗?ability 的配置自带 startIcon 和startBackgroundcolor,不知道用这个是否可以

在鸿蒙HarmonyOS应用中设置启动页,通常涉及以下几个步骤:

首先,确保你已经在项目中创建了一个启动页Activity或Page(取决于你使用的是Java/Kotlin还是Dart等语言)。这个页面将作为应用启动时首先显示的界面。

其次,在应用的配置文件(如config.json或AndroidManifest.xml,具体取决于项目类型)中,指定这个页面作为启动页。对于使用ArkUI(即Dart语言)开发的应用,你需要在config.json中的module字段下设置launchPage属性为你的启动页路径。对于使用Java/Kotlin开发的应用,则需要在AndroidManifest.xml中设置<activity>标签的android:name属性为启动页Activity的全限定名,并添加<intent-filter>来指定其为LAUNCHER和MAIN Activity。

最后,确保你的启动页代码中没有导致应用崩溃或无法加载的逻辑错误。启动页应该能够迅速加载并显示,为用户提供良好的第一印象。

如果遵循了上述步骤但启动页仍未正确设置,可能是配置文件中的路径错误或代码中存在其他问题。此时,建议仔细检查配置文件和启动页代码,或参考官方文档进行排查。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

HarmonyOS 鸿蒙next 实现自定义启动页,要在 HarmonyOS 中实现自定义启动页,需要在项目中 Ability 的 onWindowStageCreate 和 onWindowStageRestore 方法中获取应用主窗口, 并通过调用窗口强制全屏布局接口 setWindowLayoutFullScreen 将窗口设置为全屏。

/**
* 将窗口设置为全屏
* [@param](/user/param) windowStage
*/
setFullSize(windowStage: window.WindowStage) {
   let windowClass: window.Window = windowStage.getMainWindowSync(); // 获取应用主窗口
   // 设置窗口全屏
   let isLayoutFullScreen = true;
   windowClass.setWindowLayoutFullScreen(isLayoutFullScreen)
       .then(() => {
           console.info('Succeeded in setting the window layout to full-screen mode.');
       })
       .catch((err: BusinessError) => {
           console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err));
       });
}

新建启动页 Splash.ets ,在该页面中的 aboutToAppear 生命周期钩子中使用 timer 定时器,实现延时跳转功能。最后在组件结构销毁之前的 aboutToDisappear 生命周期钩子中销毁 timer 定时器。

[@State](/user/State) countdown: number = 5; // 倒计时,默认 5 秒
readonly DURATION: number = 1000; // 倒计时间隔
private timer: number = 0; // 定时器

aboutToAppear(): void {
 this.startTiming();
}

/**
* 开始倒计时
*/
startTiming() {
 // 设置时间间隔
 this.timer = setInterval(() => {
   this.countdown--;
   if (this.countdown === 0) {
     this.clearTiming();
     this.jumpToMainPage();
   }
 }, this.DURATION);
}

/**
* 清除定时器
*/
clearTiming() {
 if (this.timer !== null) {
   clearInterval(this.timer);
   this.timer = 0;
 }
}

/**
* 跳转到主页
*/
jumpToMainPage() {
 this.clearTiming();
 router.replaceUrl({
   url: 'pages/Index'
 });
}

/**
* 组件结构销毁之前时
*/
aboutToDisappear() {
 // 清除定时器
 this.clearTiming();
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!