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