Я пытался использовать **Google Places API** in my
ioni c 4 app to show nearby hospitals. It works when I run it on a browser, I get the results. But it does not work when I test it from my
android` телефон.
Я где-то читал, что Google
не позволяет вам использовать места остальные API непосредственно из приложения (из-за проблемы CORS
) оно должно вызываться внутренним сервером. Это правда? Можно ли как-нибудь использовать API мест из моего приложения.
Ссылка: https://forum.ionicframework.com/t/ionic-4-google-places-api-not-working-on-debug-android-app/180301
Вот мой код:
index. html
<head>
<script src="http://maps.google.com/maps/api/js?key=AIzaXXXXXXXXXXXXXX&libraries=places"></script>
</head>
app.module.ts
import { Geolocation } from '@ionic-native/geolocation/ngx';
providers: [
Geolocation,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
]
component.ts
import { Geolocation ,GeolocationOptions ,Geoposition ,PositionError } from '@ionic-native/geolocation/ngx';
declare var google;
ionViewDidEnter() { this.getUserPosition(); }
getUserPosition(){
this.options = { enableHighAccuracy : true};
this.geolocation.getCurrentPosition(this.options).then((pos : Geoposition) => {
this.currentPos = pos;
var request = {
location: new google.maps.LatLng(pos.coords.latitude,pos.coords.longitude),
radius: '4000',
types: ['hospital']
};
var container = document.getElementById('results');
var service = new google.maps.places.PlacesService(container);
service.nearbySearch(request, (results, status) => {
if (status == google.maps.places.PlacesServiceStatus.OK) {
results.forEach(ele => {
var hospObj = {};
hospObj['name'] = ele.name;
hospObj['vicinity'] = ele.vicinity;
this.places.push(hospObj);
});
}
});
},(err : PositionError)=>{
this.err = err.message;
console.log("error : " + err.message);
});
}