javascript - 在 Cordova 触发 deviceready 之前初始化应用程序

标签 javascript cordova

我有一个场景,我尝试在 Cordova 的 deviceready 事件上初始化我的应用程序。现在,这个初始化序列需要几秒钟的时间来执行。这导致总启动时间比预期长得多。我的问题是,是否可以简单地与即将推出的 Cordova API 和插件并行运行此初始化序列?

注意:初始化不会利用 API 或插件中的任何内容,因此我是否可以直接在 onLoad 而不是 onDeviceReady 上立即运行它?

最佳答案

假设您的应用的初始化使用 Promise,您可以将 deviceready 监听器包装在 Promise 中,并使用 Promise.all 与监听器并行初始化:

const deviceReady = new Promise((resolve) => {
  document.addEventListener("deviceready", resolve, false);
});

function initializeApp() {
  // some async initialization (returns a promise)
}

Promise.all([deviceReady, initializeApp()])
  .then(() => {
    // ready to start
  });

关于javascript - 在 Cordova 触发 deviceready 之前初始化应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42908517/

相关文章:

javascript - jQuery 延迟似乎没有为此类事件提供正确的延迟

javascript - 如何在AngularJS中的fullcalendar中动态设置多个事件?

javascript - 使用 Angular JS 和 Cordova 上传表单数据和图像

cordova - 如何使用 Phonegap CLI 创建/构建本地应用程序

javascript - ng-circle-progress 组件仅在属性 render OnClick 属性设置为 true 时才起作用

javascript - 删除数组中所有对象的属性

javascript - Webpacked lambda 抛出 ERR_INVALID_ARG_TYPE(name, 'string' , value);当跑的时候

javascript - 导航栏不会在 iFrame 中保持静态

javascript - W3C 验证器检测到隐藏的 JavaScript

android - 跨平台网络框架——区别