HarmonyOS 鸿蒙Next 提前加载web引擎(initializeWebEngine)偶现崩溃

HarmonyOS 鸿蒙Next 提前加载web引擎(initializeWebEngine)偶现崩溃 提前加载web引擎时偶现崩溃,日志如下,调用如下:

async onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): Promise<void> {
    PAPCLogUtils.logI(TAG , 'Ability onCreate') //一定要在所有操作最前面
    CBAppConfig.initWithUIAbilityContext(this.context)
    CBDockResourceManager.checkH5Resource()
    AppLaunchUtil.startWebEngine() //预加载web引擎,提升启动速度
    AppLaunchUtil.tryFullPushInfo(want)
}

static async startWebEngine() {
    webview.WebviewController.initializeWebEngine()
}

因为看到描述说initializeWebEngine不支持在异步线程中调用,想问问是不是startWebEngine方法加async引起的。另外如果直接在onCreate方法中同步调用initializeWebEngine方法,是否会有性能问题。


更多关于HarmonyOS 鸿蒙Next 提前加载web引擎(initializeWebEngine)偶现崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

应该是initializeWebEngine在异步线程中调用导致的崩溃,直接同步调用不会导致性能问题。官方示例也是在onCreate方法中进行设置的,参考:

// xxx.ets

import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';

import { webview } from '@kit.ArkWeb';

export default class EntryAbility extends UIAbility {

  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {

    console.log("EntryAbility onCreate")

    webview.WebviewController.initializeWebEngine()

    console.log("EntryAbility onCreate done")

  }

}

该方法只需在webview初始化之前调用即可,文档中onCreate只是举例,具体位置可根据你们需求进行使用。在 Web 组件初始化之前,通过此接口加载 Web 引擎的动态库文件,以提高启动性能。自动预连接历史访问过的高频网站。

更多关于HarmonyOS 鸿蒙Next 提前加载web引擎(initializeWebEngine)偶现崩溃的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对帖子标题“HarmonyOS 鸿蒙Next 提前加载web引擎(initializeWebEngine)偶现崩溃”的问题,以下提供可能的解决方案:

HarmonyOS在提前加载web引擎(initializeWebEngine)时偶现崩溃,可能是由于多种原因导致的。首先,请确保你使用的鸿蒙系统版本与Web引擎的版本兼容。不兼容的版本可能会引发各种不可预见的问题,包括崩溃。

其次,检查你的代码实现。确保在调用initializeWebEngine之前,所有必要的资源和环境都已正确配置。例如,内存分配、权限请求等都需要在初始化Web引擎之前处理好。

此外,考虑是否存在多线程并发访问的问题。如果Web引擎的初始化在多线程环境下进行,需要确保线程安全,避免资源竞争和状态不一致导致的崩溃。

如果以上步骤都无法解决问题,可以尝试捕获崩溃时的日志信息。详细的崩溃日志可以提供更多关于崩溃原因的线索,有助于定位问题。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。他们将提供更专业的技术支持和解决方案。

回到顶部