Запуск функции через ngOnInit () не работает для ionic 4 - PullRequest
0 голосов
/ 18 января 2019

Итак, я хочу запустить функцию, как только загрузится приложение. У меня проблемы с этим в ионном 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

Однако он не показывает мою широту и долготу (отображается только содержание абзаца).

Я попытался выполнить поиск по релевантным ключевым словам и реализовал все, что нашел, но этого оказалось недостаточно (Учитывая, что ionic 4 все еще довольно новый и не так много помощи).

Пожалуйста, помогите мне, чтобы приложение возвращало долготу и широту, как только приложение запускается.

1 Ответ

0 голосов
/ 18 января 2019

ngOnInit не сработает, если вы вернетесь на страницу после помещения ее в стек ...

Вы можете использовать один из следующих хуков жизненного цикла:

ionViewWillEnter - срабатывает при входе на страницу (также если она вернулась из стека)

ionViewDidEnter - срабатывает после входа (даже если он вернулся из стека)

...