我目前在 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);
});