|
|
|
|
@ -6,7 +6,7 @@ import { DevicePermissionsService } from 'src/app/hmg-common/services/device-per
|
|
|
|
|
import { Geolocation } from '@ionic-native/geolocation/ngx';
|
|
|
|
|
import { Platform } from "@ionic/angular";
|
|
|
|
|
|
|
|
|
|
declare var cordova: any;
|
|
|
|
|
declare const cordova: any;
|
|
|
|
|
|
|
|
|
|
@Injectable({
|
|
|
|
|
providedIn: 'root'
|
|
|
|
|
@ -41,16 +41,16 @@ export class HMGUtils {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async isHuaweiDevice(): Promise<boolean> {
|
|
|
|
|
var result: any = await new Promise((resolve, reject) => {
|
|
|
|
|
const result: any = await new Promise((resolve, reject) => {
|
|
|
|
|
cordova.plugins.CordovaHMSGMSCheckPlugin.isHmsAvailable(
|
|
|
|
|
"index.js",
|
|
|
|
|
(_res) => {
|
|
|
|
|
var hmsAvailable = _res === "true";
|
|
|
|
|
const hmsAvailable = _res === "true";
|
|
|
|
|
resolve(hmsAvailable);
|
|
|
|
|
},
|
|
|
|
|
(_err) => {
|
|
|
|
|
reject({ "status": false, "error": JSON.stringify(_err) });
|
|
|
|
|
alert("Error checking device HMS/GMS") // add your popup
|
|
|
|
|
this.common.presentAlert(this.ts.trPK('general', 'huawei-hms-gms-error'));
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
@ -60,42 +60,40 @@ export class HMGUtils {
|
|
|
|
|
|
|
|
|
|
private getHMSLocation(callBack: Function) {
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
|
|
console.log("Huawei Location [Getting]");
|
|
|
|
|
cordova.plugins.CordovaHMSLocationPlugin.requestLocation(
|
|
|
|
|
"index.js",
|
|
|
|
|
(_res) => {
|
|
|
|
|
console.log("Huawei Location Success: [Stop Getting]");
|
|
|
|
|
cordova.plugins.CordovaHMSLocationPlugin.removeLocation("", (_res) => { }, (_err) => { });
|
|
|
|
|
var location = _res.split(',')
|
|
|
|
|
const location = _res.split(',')
|
|
|
|
|
console.log(location);
|
|
|
|
|
if (location.length == 2) {
|
|
|
|
|
var lat = Number(_res.split(',')[0]);
|
|
|
|
|
var long = Number(_res.split(',')[1]);
|
|
|
|
|
var mock = Boolean(_res.split(',')[2]);
|
|
|
|
|
if (location.length == 3) {
|
|
|
|
|
const lat = Number(_res.split(',')[0]);
|
|
|
|
|
const long = Number(_res.split(',')[1]);
|
|
|
|
|
const mock = Boolean(_res.split(',')[2]);
|
|
|
|
|
callBack({"latitude":lat, "longitude":long, "isfake":mock})
|
|
|
|
|
} else {
|
|
|
|
|
alert("Invalid Huawei location from plugin.");
|
|
|
|
|
this.common.presentAlert(this.ts.trPK('general', 'invalid-huawei-location'));
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
(_err) => {
|
|
|
|
|
console.log("Huawei Location [Getting Error]: " + + JSON.stringify(_err));
|
|
|
|
|
alert("Error while getting Huawei location");
|
|
|
|
|
console.log("Huawei Location [Getting Error]: " + JSON.stringify(_err));
|
|
|
|
|
this.common.presentAlert(this.ts.trPK('general', 'invalid-huawei-location'));
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
} catch (_err) {
|
|
|
|
|
console.log("Huawei Location Plugin [Error]: " + + JSON.stringify(_err));
|
|
|
|
|
alert("Error while initializing Huawei Location Plugin");
|
|
|
|
|
this.common.presentAlert('Error while initializing Huawei Location Plugin');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private getGMSLocation(callBack: Function) {
|
|
|
|
|
this.backgroundGeolocation.getCurrentLocation({ timeout: 10000, enableHighAccuracy: true, maximumAge: 3000 }).then((resp) => {
|
|
|
|
|
if (resp && (resp.latitude && resp.longitude)) {
|
|
|
|
|
var isFakeLocation = resp.isFromMockProvider || resp.mockLocationsEnabled;
|
|
|
|
|
var lat = resp.latitude;
|
|
|
|
|
var long = resp.longitude;
|
|
|
|
|
const isFakeLocation = resp.isFromMockProvider || resp.mockLocationsEnabled;
|
|
|
|
|
const lat = resp.latitude;
|
|
|
|
|
const long = resp.longitude;
|
|
|
|
|
callBack({"latitude":lat, "longitude":long, "isfake":isFakeLocation})
|
|
|
|
|
} else {
|
|
|
|
|
this.common.presentAlert(this.ts.trPK('home', 'position-error'));
|
|
|
|
|
@ -108,8 +106,8 @@ export class HMGUtils {
|
|
|
|
|
private getIOSLocation(callBack: Function) {
|
|
|
|
|
this.geolocation.getCurrentPosition({ maximumAge: 3000, timeout: 10000, enableHighAccuracy: true }).then(resp => {
|
|
|
|
|
if (resp && resp.coords.latitude && resp.coords.longitude) {
|
|
|
|
|
var lat = resp.coords.latitude;
|
|
|
|
|
var long = resp.coords.longitude;
|
|
|
|
|
const lat = resp.coords.latitude;
|
|
|
|
|
const long = resp.coords.longitude;
|
|
|
|
|
callBack({"latitude":lat, "longitude":long, "isfake":false})
|
|
|
|
|
} else {
|
|
|
|
|
this.common.presentAlert(this.ts.trPK('home', 'position-error'));
|
|
|
|
|
|