离子2刷新视图
问题描述:
in Ionic应用程序如何在启用位置时自动刷新视图。离子2刷新视图
这是我的代码
this.platform.ready().then((readySource) => {
diagnostic.isLocationAvailable().then(
(isAvailable) => {
console.log('Is available? ' + isAvailable);
this.location.getPostion();
this.location.getCity(location.lat, location.lng);
}).catch((err) => {
console.log(err);
console.log("Please enable your location");
});
});
如果定位功能未启用时,应用程序启动我必须杀死应用程序,然后打开位置,重新启动应用程序来获得位置。如何在后台自动更改位置,应用刷新视图和显示位置时自动更改
答
除非我误认了您的要求,否则您想在用户位置变为可用时开始跟踪用户的位置(但本来是关闭的,重新启动它的唯一方法是在启用它之后)。
原因
this.platform.ready()
仅调用一次假设它在app.component
(这是默认位置的话)。因此,在应用程序开始时会触发,我期望diagnostic.isLocationAvailable()
解决错误或被拒绝。
因此,除非您启用按钮单击,否则无法重新触发所述代码。
解决方案
watchPosition()
https://ionicframework.com/docs/native/geolocation/#watchPosition
关注当前设备的位置。通过取消订阅Observable更改来清除手表。
但是,我不确定这是否会运行,如果位置被禁用。如果你看的位置,就可以得到第一个ping后退订:
const subscription = this.geolocation.watchPosition()
.filter((p) => p.coords !== undefined) //Filter Out Errors
.subscribe(position => {
console.log(position.coords.longitude + ' ' + position.coords.latitude);
subscription.unsubsribe();
});
我不知道,如果位置是肢残会发生什么。但我不相信有这样的倾听者。