У меня проблема с Ionic (5.0.1) и Angular.Я хотел бы визуализировать некоторые java-переменные на домашней странице, переменные касаются информации о локализации или о некоторых параметрах сетевых ячеек.Я нашел пример того, как установить плагин «Cordova AdvancedGeolocation», но я могу только просматривать карту по умолчанию, на самом деле я хотел бы получить доступ к переменным плагина для отображения во внешнем интерфейсе.
Я использую этот кодв app.component.ts, а затем я изменяю config.xml и, наконец, я помещаю «sample-map.html» в поле src.
Я вижу карту с расположением GPS и сети, но я неНе понимаю, как я мог иметь доступ к переменным Java и отображать их в front-end.
Большое спасибо.
import { Component, NgZone } from '@angular/core';
import { Platform } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { Geolocation, Geoposition } from '@ionic-native/geolocation/ngx';
@Component({
selector: 'app-root',
templateUrl: 'app.component.html'
})
export class AppComponent {
AdvancedGeolocation: any;
currentLat: any;
currentLng: any;
watch: any;
constructor(
private platform: Platform,
private splashScreen: SplashScreen,
private statusBar: StatusBar,
// tslint:disable-next-line: no-shadowed-variable
private zone : NgZone,
private geolocation: Geolocation
) {
this.initializeApp();
}
initializeApp() {
this.platform.ready().then(() => {
this.statusBar.styleDefault();
this.splashScreen.hide();
if (this.platform.is('android')) {
this.platform.ready().then(() => {
this.AdvancedGeolocation.start((success) => {
//loading.dismiss();
// this.refreshCurrentUserLocation();
try {
var jsonObject = JSON.parse(success);
console.log("Provider " + JSON.stringify(jsonObject));
switch (jsonObject.provider) {
case "gps":
console.log("setting gps ====<<>>" + jsonObject.latitude);
this.currentLat = jsonObject.latitude;
this.currentLng = jsonObject.longitude;
break;
case "network":
console.log("setting network ====<<>>" + jsonObject.latitude);
this.currentLat = jsonObject.latitude;
this.currentLng = jsonObject.longitude;
break;
case "satellite":
//TODO
break;
case "cell_info":
//TODO
break;
case "cell_location":
//TODO
break;
case "signal_strength":
//TODO
break;
}
}
catch (exc) {
console.log("Invalid JSON: " + exc);
}
},
function (error) {
console.log("ERROR! " + JSON.stringify(error));
},
{
"minTime": 500, // Min time interval between updates (ms)
"minDistance": 1, // Min distance between updates (meters)
"noWarn": true, // Native location provider warnings
"providers": "all", // Return GPS, NETWORK and CELL locations
"useCache": true, // Return GPS and NETWORK cached locations
"satelliteData": false, // Return of GPS satellite info
"buffer": false, // Buffer location data
"bufferSize": 0, // Max elements in buffer
"signalStrength": false // Return cell signal strength data
});
});
} else {
// **For IOS**
let options = {
frequency: 1000,
enableHighAccuracy: false
};
this.watch = this.geolocation.getCurrentPosition({ enableHighAccuracy: true }).then((resp) => {
console.log("current location at login" + JSON.stringify(resp.coords));
// Run update inside of Angular's zone
this.zone.run(() => {
this.currentLat = resp.coords.latitude;
this.currentLng = resp.coords.longitude;
});
}, Error => {
console.log(Error);
}).catch(Error => {
console.log(Error);
}) ;
}
});
}
}