Плагин airwatch-sdk не распознается в приложении ionic 3

Я создал совершенно новое пустое приложение ionic 3 и запустил команду «npm i airwatch-sdk-plugin», а затем «платформа ionic cordova add android».

В app.components у меня есть этот код...

import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';

import { HomePage } from '../pages/home/home';
@Component({
  templateUrl: 'app.html'
})
export class MyApp {
  rootPage:any = HomePage;

  constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {
    platform.ready().then(() => {
      // Okay, so the platform is ready and our plugins are available.
      // Here you can do any higher level native things you might need.
      statusBar.styleDefault();
      splashScreen.hide();

      window.plugins.airwatch.setSDKEventListener( function( event, error ) {
        if( event === "initSuccess" ) {
          alert( 'airwatch initialised' );
        }
      },
      (error) => {
        alert( 'airwatch error: ' + JSON.stringify( error ) );
      });
      
    });
  }
}

Редактор кода Visual Studio в Windows 10 сообщает, что плагины не существуют в окне типа. Я могу изменить эту строку на...

(<any>window).plugins

чтобы удалить ошибку редактора, но когда я запускаю проект с "ionic serve", браузер сообщит об этой ошибке...

TypeError: Не удается прочитать свойство «airwatch» неопределенного

Что я делаю не так?


person user1753622    schedule 14.09.2018    source источник


Ответы (1)


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

ionic cordova plugin add airwatch-sdk-plugin 

Согласно руководству по установке, функции доступны в объекте window.plugins.airwatch. Следовательно, вам нужно объявить переменную window, как показано ниже:

declare var window: any;

Надеюсь, это поможет вам.

person Sandy.....    schedule 14.09.2018
comment
Я удалил все плагины, поэтому каталог плагинов пуст. Я удалил плагин airwatch-sdk. Я также удалил платформу Adnroid. Затем я переустановил плагин airwatch-sdk и поместил declare var window: any; выше @Component и внутри platform.ready я помещаю код window.plugins.airwatch.setSDKEventListener(event,info). Я получаю эту ошибку ... Не удается прочитать свойство «airwatch» неопределенного. Любые идеи? - person user1753622; 17.09.2018
comment
Просто хочу знать, используете ли вы ionic cordova под управлением Android и реальные устройства для тестирования? - person Sandy.....; 17.09.2018
comment
Я использую ionic cordova build android и работаю на устройстве. У меня также есть намерениеShim, и для вызова этого я делаю .... window.plugins.intentShim и через Chrome: inspect я могу поставить там точку останова, и я вижу, что в window.plugins указан только объект IntentShim, а не airwatch плагин. Очевидно, это означает, что плагин не установлен должным образом. Какими были бы шаги, если бы я начал с совершенно нового проекта... ionic start airwatch Blank? - person user1753622; 17.09.2018
comment
Мой ionic.info сообщает об этом ... Ionic: ionic (Ionic CLI): 4.0.5 (C:\Users\Graham.Simmons\AppData\Roaming\npm\node_modules\ionic) Ionic Framework: ionic-angular 3.9.2 @ ionic/app-scripts: 3.1.10 Cordova: Cordova (CLI Cordova): 8.0.0 Cordova Платформы: android 7.0.0 Система: Android SDK Tools: 26.1.1 NodeJS: v6.10.3 (C:\Program Files\nodejs\ node.exe) npm: 4.6.1 ОС: Windows 10 - person user1753622; 17.09.2018
comment
Могу ли я узнать, как вы установили плагин? то есть с помощью плагина Cordova добавьте airwatch-sdk-plugin или npm i airwatch-sdk-plugin. Также вы можете попробовать эту команду ionic cordova plugin ls - person Sandy.....; 17.09.2018
comment
Я использовал это ... npm i airwatch-sdk-plugin и запустив другую команду, я получаю ... $ ionic cordova plugin ls › Cordova plugin ls Плагины не добавлены. Используйте 1_. - person user1753622; 17.09.2018
comment
и это тоже (было слишком большим для вставки с последними результатами) .... net.js: 654 throw new TypeError( ^ TypeError: Invalid data, chunk должен быть строкой или буфером, а не объектом в Socket.write (net. js:654:11) в процессе.‹anonymous› (C:\Users\Graham.Simmons\AppData\Roaming\npm\node_modules\ionic\bin\ionic:9:63) в emitTwo (events.js:106:13 ) в process.emit (events.js:191:7) в emitPendingUnhandledRejections (внутренний/процесс/обещания.js:66:22) в process._tickCallback (внутренний/процесс/next_tick.js:110:7) - person user1753622; 17.09.2018
comment
Я только что удалил версию npm и установил плагин Cordova, добавил версию airwatch-sdk-plugin, и теперь плагин ionic Cordova ls показывает › плагин Cordova ls com.airwatch.awsdkplugin 1.2.0 airwatch-sdk-plugin - person user1753622; 17.09.2018
comment
Пожалуйста, попробуйте запустить приложение сейчас - person Sandy.....; 17.09.2018
comment
ionic cordova build android завершается с ошибкой... Не удалось разрешить все файлы для конфигурации ':app:debugCompileClasspath'. а также Не удалось найти: AirWatchSDK-release-17.6.3.2-SNAPSHOT:. - person user1753622; 17.09.2018
comment
Я пропустил какую-то конфигурацию? - person user1753622; 17.09.2018
comment
Нужно ли устанавливать SDK в Android Studio, чтобы сборка знала, что такое airwatch? Если да, то что мне нужно сделать? Пожалуйста, помогите, поскольку я хожу по кругу здесь. - person user1753622; 18.09.2018