Создание ионного плагина с помощью плагина - PullRequest
0 голосов
/ 02 ноября 2018

Я новичок в Ионике и Кордове. Мне нужно создать плагин для ионной с помощью Cordova и интегрировать его в образец ионного приложения.

Шаги, которым я следовал:

Создан простой ионный плагин с использованием plugman

plugman create --name SayHello --plugin_id cordova-plugin-sayhello -plugin_version 0.0.1

Добавлена ​​платформа Android в плагин выше.

cd SayHello/ && plugman platform add --platform_name android

Теперь я хочу интегрировать этот плагин в мое ионное приложение.

ionic cordova plugin add ../SayHello

В моем ионном приложении внутри Home.ts я написал этот фрагмент кода.

declare var cordova: any;
var success = function(result) {
  console.log(result);
}
var failure = function(err) {
  console.log(err);
}
cordova.plugins.HelloWorld.coolMethod("SayHelloTest", success, failure);

Проблема в том, что я не могу вызвать какую-либо функцию из-за успеха или неудачи в ионном приложении.

например, если я вызываю функцию doSomething from success:

var success = function(result) {
   doSomething(result);
}

Показывает ошибку. Функция doSomething не найдена. Он может печатать только в консоли.

1 Ответ

0 голосов
/ 02 ноября 2018

вам нужно создать успех как функцию класса и либо отправить его как связанную функцию, либо вызвать внутри стрелки.

declare var cordova:any;

class HomePage{
    //constructor etc...
    doSomething(res:any){
    }

    success(result){
        this.doSomething(result);
    }
    failure(err){}
    //..
    //call
    callCordovaFunction(){
        cordova.plugins.HelloWorld.coolMethod("SayHelloTest", this.success.bind(this), this.failure.bind(this));
    //or
        cordova.plugins.HelloWorld.coolMethod("SayHelloTest", (res)=>this.success(res),(err)=>this.failure(err));    
    }
}
...