Я пытаюсь обнаружить движение с помощью ionic2. Вот фрагмент моего detectMotion.ts.ionic2 - Устройство Motion, возвращаемое наблюдаемым, но отписывающее сообщение дает ошибку
import {DeviceMotion} from 'ionic-native';
@Page({
templateUrl: 'build/pages/pedometer/pedometer.html'
})
export class Pedometer {
platform;
watch;
constructor() {
this.platform = platform;
}
startWatching() {
console.log('Starting to watch');
this.watch = DeviceMotion.watchAcceleration(this.options);
this.watch.subscribe(result => {this.detectMotion(result)});
}
stopWatching() {
console.log('Stop Watching');
// this.watch.dispose();
this.watch.unsubscribe();
// this.watch.clearWatch();
}
detectMotion(result) {
console.log('Current Readings: '+ JSON.stringify(result));
//.....do something with the results.....
this.stopWatching(); // Stop and wait for a second before restarting
setTimeout(this.startWatching(), 1000);
}
}
StartWatching вызывается нажатием кнопки в html. Я пробовал все 3 варианта, которые я мог бы исследовать. отказаться от подписки; распоряжаться; clearWatch Но все напрасно. Точная ошибка, что я получаю это
error ORIGINAL EXCEPTION: TypeError: Object #<Observable> has no method 'unsubscribe'
от reference из ioni2 я узнал, что она возвращает Observable
Любая помощь или указатель ценится Спасибо заранее
~ Dhaval
Благодарности @PierreDuc - Я следовал [это] (http://www.gajotres.net/detecting-device-motion-with-ionic-framework- и-ngcordova /), которая является версией iioinic1. Было понимание, что часы - это ручка для подписки и отмены подписки. Еще раз спасибо, это помогло мне –