Ionic 2: как я могу использовать такие функции, как startStateNotifications(), используя плагин BLE от ionic-native?

В настоящее время я использую https://github.com/don/cordova-plugin-ble-central в приложении Ionic 1. Я конвертирую это приложение в Ionic 2, поэтому я хочу использовать этот плагин через ionic-native.

Проблема в том, что некоторые функции плагина не доступны через ionic-native. Например, функция ble.startStateNotifications(success, failure); не доступно с ионно-нативным, тогда как ble.isEnabled(success, failure); есть (оба доступны в cordova-plugin-ble-central).

Нужно ли использовать плагин без ionic-native, чтобы использовать все его методы?

==================

РЕДАКТИРОВАТЬ

Наконец, я использовал плагин напрямую (вне ionic-native) и преобразовал функции обратного вызова в Observables следующим образом:

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';

declare var ble;

@Injectable()
export class BLEService {
    constructor() {}

    BLEstartStateNotifications() {
        return new Observable((observer) => {
            ble.startStateNotifications((state) => {
                observer.next(state);
            }, (err) => {
                observer.error(err);
            });
        });
    }
}

И тогда вы можете вызвать функцию в качестве наблюдаемой:

this.BLEstartStateNotifications().subscribe((state) => {
    console.log(state);
}, (error) => {
    console.log(error);
});

0 ответов

Другие вопросы по тегам