Vai al contenuto

Setup iOS

GitHub
Registrazione simulatore iOS con Apple MapKit: pin store locator, zone di consegna, un percorso, 500 marker clusterizzati, camera 3D inclinata e tipi di mappa satellitare

iOS utilizza Apple MapKit. Non hai serve una chiave Google Maps API su iOS.

Se chiami enableCurrentLocation, aggiungi una stringa di utilizzo della posizione a ios/App/App/Info.plist:

<key>NSLocationWhenInUseUsageDescription</key>
<string>We use your location to show you on the map.</string>

Il plugin richiede la posizione con keepAlive quindi enableCurrentLocation risolve in modo affidabile dopo l'attribuzione del permesso.

Il nativo MKMapView si monta nella gerarchia WKWebView di Capacitor e traccia l'elemento DOM associato tramite onResize e onDisplay. Quando le pagine Ionic vengono riattivate, le chiamate al plugin rimontano la mappa se WebKit ha ricostruito le scroll view.

Usa un WebView o uno sfondo di pagina trasparente dove la mappa deve essere visibile attraverso gli strati HTML sopra il contenitore della mappa.

In toBack modalità, metti data-map-overlay sui wrapper HUD in modo che il CSS dell'overlay del README abiliti i tap. Il router touch nativo invia i gesti alla mappa quando il bersaglio del hit è trasparente e non si trova sotto un elemento interattivo.

Il bridge nativo iOS espone anche takeSnapshot, searchAutocomplete, searchPlaces, searchResolve, geocode, e reverseGeocode. Non sono ancora presenti nel NativeMap wrapper della classe. Chiamali sull'handle del plugin di basso livello quando ti serve la ricerca MapKit o il geocoding su iOS:

import { registerPlugin } from '@capacitor/core';
type NativeMapBridge = {
takeSnapshot(options: { id: string }): Promise<{ image: string }>;
geocode(options: { address: string }): Promise<Record<string, unknown>>;
};
const NativeMapBridge = registerPlugin<NativeMapBridge>('NativeMap');