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

nut*_*uff 8 typescript ionic-framework ionic2 ionic3 angular

在我的Ionic 2应用程序(TypeScript)中,我使用插件,例如Camera插件ionic-native可以正常工作.现在我想用BackgroundMode plugin: https://github.com/katzer/cordova-plugin-background-mode.我阅读了README,我按照描述进行了安装.

在Usage下,它说插件可以像这样使用:

cordova.plugins.backgroundMode.enable();
Run Code Online (Sandbox Code Playgroud)

在我的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": {}
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

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

seb*_*ras 13

就像AGrandt 在这里说的那样,你可以安装它:

ionic plugin add cordova-plugin-background-mode
Run Code Online (Sandbox Code Playgroud)

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

declare var cordova:any;
Run Code Online (Sandbox Code Playgroud)

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

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();
    }
);
Run Code Online (Sandbox Code Playgroud)