Использование стороннего плагина cordova в Ionic 2 с TypeScript


В моем приложении Ionic 2 (TypeScript), где я использую плагины, например плагин Camera от ionic-native, который отлично работает. Теперь я хочу использовать BackgroundMode plugin: https://github.com/katzer/cordova-plugin-background-mode. Я прочитал README, я сделал установку, как описано.

В разделе Usage говорится, что плагин можно использовать следующим образом:

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": {}
}

Мой вопрос:

Как я могу использовать плагин BackgroundMode в ionic 2 TS? Я даже не знаю, как включить его в свой проект ...

1 8

1 ответ:

Так же, как AGrandt говорит здесь , Вы можете установить его с помощью:

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();
    }
);