在 ionic 4 页面中获取并显示来自 cordova 插件的实时数据
Get and show live data from cordova plugin in ionic 4 page
我正在尝试编写一个简单的计步器应用程序,我在 android 中使用此插件 (https://github.com/leecrossley/cordova-plugin-pedometer) 来获取计步器数据,所以我想获取此数据并将其显示在我的离子页面(前端视图),我尝试使用 ngZone 刷新对象,同时该方法订阅了 startPedometerUpdates 函数,但它需要很多秒才能工作,有时会卡住几秒然后再次开始显示计数器......
这是我的代码:
steps: any = []
constructor(private ngZone: NgZone, private pedometer: Pedometer) { }
ngOnInit() {
}
getSteps(){
this.pedometer.startPedometerUpdates()
.subscribe((data: IPedometerData) => {
this.ngZone.run(() => this.steps.push(data))
});
}
我的html调试数据很简单:
<ion-content>
{{this.steps | json}}
<ion-button (click)="getSteps()">Show steps</ion-button>
</ion-content>
所以我想用尽可能简单的东西来显示 "real time" 中的数据...
提前致谢
你不能在 subscribe 中推送数据,即使你使用 NgZone bcoz push 是一个函数 ngZone 在函数
中不起作用
steps: any = []
constructor(private ngZone: NgZone, private pedometer: Pedometer) {
this.getSteps();
setInterval(()=>{
console.log('read in a sec')
},1000)
}
ngOnInit() {
}
getSteps(){
this.pedometer.startPedometerUpdates()
.subscribe((data: IPedometerData) => {
this.ngZone.run(() => this.steps.push(data))
});
}
我正在尝试编写一个简单的计步器应用程序,我在 android 中使用此插件 (https://github.com/leecrossley/cordova-plugin-pedometer) 来获取计步器数据,所以我想获取此数据并将其显示在我的离子页面(前端视图),我尝试使用 ngZone 刷新对象,同时该方法订阅了 startPedometerUpdates 函数,但它需要很多秒才能工作,有时会卡住几秒然后再次开始显示计数器......
这是我的代码:
steps: any = []
constructor(private ngZone: NgZone, private pedometer: Pedometer) { }
ngOnInit() {
}
getSteps(){
this.pedometer.startPedometerUpdates()
.subscribe((data: IPedometerData) => {
this.ngZone.run(() => this.steps.push(data))
});
}
我的html调试数据很简单:
<ion-content>
{{this.steps | json}}
<ion-button (click)="getSteps()">Show steps</ion-button>
</ion-content>
所以我想用尽可能简单的东西来显示 "real time" 中的数据...
提前致谢
你不能在 subscribe 中推送数据,即使你使用 NgZone bcoz push 是一个函数 ngZone 在函数
中不起作用 steps: any = []
constructor(private ngZone: NgZone, private pedometer: Pedometer) {
this.getSteps();
setInterval(()=>{
console.log('read in a sec')
},1000)
}
ngOnInit() {
}
getSteps(){
this.pedometer.startPedometerUpdates()
.subscribe((data: IPedometerData) => {
this.ngZone.run(() => this.steps.push(data))
});
}