在带有 TypeScript 的 Ionic 2 中使用第三方 cordova 插件

Using a third-party cordova plugin in Ionic 2 with TypeScript

在我的 Ionic 2 应用程序 (TypeScript) 中,我使用插件,例如来自 ionic-native 的 Camera 插件,它工作正常。现在我想使用 BackgroundMode pluginhttps://github.com/katzer/cordova-plugin-background-mode。 我阅读了自述文件,并按照说明进行了安装。

在用法下它说插件可以这样使用:

cordova.plugins.backgroundMode.enable();

在我的 IDE (Atom) 中,当我键入它时,它说找不到 cordova。

我在谷歌上搜索了很多关于 cordova 插件和 Ionic 2 的信息,在某些情况下它们使用 navigator.somePlugin.someFunction()window.navigator 对象,如果我理解正确的话)但这对我也不起作用。我在我的应用程序中做了一个 console.log 并且 chrome 设备检查器显示了这个:

JSON.stringify(window.navigator, null, 2)
{
  "app": {},
  "camera": {
    "DestinationType": {
      "DATA_URL": 0,
      "FILE_URI": 1,
      "NATIVE_URI": 2
    },
    "EncodingType": {
      "JPEG": 0,
      "PNG": 1
    },
    "MediaType": {
      "PICTURE": 0,
      "VIDEO": 1,
      "ALLMEDIA": 2
    },
    "PictureSourceType": {
      "PHOTOLIBRARY": 0,
      "CAMERA": 1,
      "SAVEDPHOTOALBUM": 2
    },
    "PopoverArrowDirection": {
      "ARROW_UP": 1,
      "ARROW_DOWN": 2,
      "ARROW_LEFT": 4,
      "ARROW_RIGHT": 8,
      "ARROW_ANY": 15
    },
    "Direction": {
      "BACK": 0,
      "FRONT": 1
    }
  },
  "splashscreen": {}
}

我的问题是:

如何在 ionic 2 TS 中使用 BackgroundMode 插件?我什至不知道如何将它包含到我的项目中...

就像AGrandt says here一样,您可以安装它:

ionic plugin add cordova-plugin-background-mode

然后在导入之后包括这一行:

declare var cordova:any;

并在平台准备就绪后使用它:

platform.ready().then(
    () => {
        console.log("MyApp::constructor platform.ready");
        cordova.plugins.backgroundMode.setDefaults({ 
            title: 'My App Name', 
            text: 'Active in background...');
        cordova.plugins.backgroundMode.enable();
    }
);