离子应用中的暂停方法Cordova无法正常工作



我一直在尝试在离子上输入暂停模式时尝试做某事,日志在暂停和恢复时起作用,但在暂停上,我想调用一个服务,该服务可以节省后端。该应用的状态(如果其背景与否,问题都在于呼叫需要更多的时间,以便呼叫将永远待定,是否有一种方法可以延迟DE应用程序像Iondidleav一样离开,但对于整个应用程序或使用Angular Lifecycle,但NGDESTROY不起作用,我只需要更多的时间,因此呼叫到达后端以保存数据

platform.ready().then(() => {
      if (platform.is('ios')) {
        // document.addEventListener('resign', this.onPause, false);
        // document.addEventListener('active', this.onResume, false);
        document.addEventListener("pause", function() {
          // make a call from service will be pending forever
          console.log("paused")
      }, false);
      document.addEventListener("resume", function() {
        // not firing
        console.log("resumed")
    }, false);
      } else {
        platform.pause.subscribe(() => this.onPause());
        platform.resume.subscribe(() => this.onResume());
      }
    });

我想您可以使用BackgroundMode。链接的文档适用于离子4,但是如果您使用的是离子3,可以在此处找到的文档

,只要应用程序在暂停时,您就不需要运行背景模式,您只需等到请求完成或错误。因此,请按照文档中有关如何安装它的步骤进行操作。

import { BackgroundMode } from '@ionic-native/background-mode/ngx';

并将其标记在模块中的提供商数组中。也将其导入您的组件并将其注入构造函数,例如backgroundMode

然后只使用您的pause函数:

document.addEventListener("pause", () => {
  this.backgroundMode.enable(); // enable it!
  this.myService.doSomething().pipe(
    // disable when request completes/errors
    finalize(() => this.backgroundMode.disable()) 
  )
  .subscribe(() => console.log('Yaaaay, successful!'))
}, false);

最新更新