离子2:我如何使用离子本机的BLE插件来使用诸如startStateNotifications()之类的函数?

时间:2017-02-01 18:08:16

标签: ionic-framework ionic2 cordova-plugins ionic-native

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

问题是某些插件的功能无法通过离子本机获得。例如,函数ble.startStateNotifications(success, failure);不适用于离子原生,而ble.isEnabled(success, failure);则(可在cordova-plugin-ble-central中使用)。

我是否必须使用不带离子原生的插件才能使用它的所有方法?

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

修改

最后我直接使用了插件(离子本机之外)并将回调函数转换为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);
});

0 个答案:

没有答案