0

我目前在 Ionic 1 应用程序中使用cordova-plugin-ble-central插件。我正在将此应用程序转换为 Ionic 2,因此我想通过ionic-native使用此插件。

问题是某些插件的功能无法通过 ionic-native 使用。例如,该功能ble.startStateNotifications(success, failure);不适用于 ionic-native,而ble.isEnabled(success, failure);is(两者都在 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);
            });
        });
    }
}

然后您可以将该函数作为 Observable 调用:

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

0 回答 0