因此,我想在应用程序加载后立即运行一个函数。我在离子4中遇到问题。
我尝试使用ionViewDidLoad
,但是在ionic4中已弃用,因此我尝试使用ngOnInit
,这对我也不起作用。
我试图通过单击按钮来获取经度和纬度,并且它可以正常工作,但是我希望它在应用启动时自动显示。
我的TS代码:
import { Component, OnInit } from '@angular/core';
import { Geolocation } from '@ionic-native/geolocation/ngx';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage implements OnInit {
lati: any;
long: any;
constructor(private geolocation: Geolocation) {}
ngOnInit() {
this.geolocation.getCurrentPosition().then((resp) => {
this.lati = resp.coords.latitude;
this.long = resp.coords.longitude;
}).catch((error) => {
console.log('Error getting location', error);
});
}
}
我的HTML代码(只是必要的部分):
<p id="lat">Latitude is {{lati}}</p>
<p id="lon">Longitude is {{long}}</p>
通常这会导致类似以下情况:
纬度为MY_LATITUDE
经度是MY_LONGITUDE
但是它没有显示我的纬度和经度(仅显示了段落内容)。
我尝试使用相关的关键字进行搜索,并实施了我发现的所有内容,但还远远不够。 (考虑离子4仍然很新,并且没有太多帮助。)
请帮助我,以便应用启动后该应用返回经纬度。
答案 0 :(得分:0)
ngOnInit
will not be triggered if you come back to a page after putting it into a stack...
You can use one of next Lifecycle hooks:
ionViewWillEnter
— Fired when entering a page (also if it’s come back from stack)
ionViewDidEnter
— Fired after entering (also if it’s come back from stack)
答案 1 :(得分:0)
这对我有用:
我在page.ts中添加了一个 ionViewDidEnter 函数,当被路由到的组件具有动画效果时,该函数被触发。
有关更多信息,您可以查看Life Cycle Hooks
ionViewDidEnter() {
console.log(" loading map");
setTimeout(this.loadMap.bind(this), 1000);
console.log(" loaded map");
}