Zum Inhalt springen

iOS-Setup

GitHub
iOS-Simulator-Aufnahme mit Apple MapKit: Store-Locator-Pins, Lieferzonen, eine Route, 500 gruppierte Marker, eine geneigte 3D-Kamera und Satellitenkartentypen

iOS verwendet Apple MapKit. Du brauchst es nicht keinen Google Maps API Key auf iOS.

Wenn du enableCurrentLocationaufrufst, füge einen Standort-Nutzungstext hinzu in ios/App/App/Info.plist:

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

Das Plugin fordert den Standort an mit keepAlive damit enableCurrentLocation kann nach der erteilten Berechtigung zuverlässig aufgelöst werden.

Die native Map MKMapView wird in die Capacitor WKWebView-Hierarchie gemountet und verfolgt das gebundene DOM-Element über onResize und onDisplay. Wenn Ionic-Seiten wieder angezeigt werden, mounten die Call-Paths im Plugin die Map neu, falls WebKit die ScrollViews neu aufgebaut hat.

Verwende einen transparenten WebView- oder Seitenhintergrund, damit die Map durch die HTML-Layer über dem Map-Container sichtbar wird.

Unter toBack Modus, setze data-map-overlay auf HUD-Wrapper, damit das README-Overlay-CSS Taps ermöglicht. Der native Touch-Router sendet Gesten an die Map, wenn das Hit-Target transparent ist und nicht unter einem interaktiven Element liegt.

Die native iOS-Bridge stellt außerdem bereit takeSnapshot, searchAutocomplete, searchPlaces, searchResolve, geocode, und reverseGeocode. Diese sind noch nicht am NativeMap bisher kein Wrapper. Rufe sie direkt über den Low-Level-Plugin-Handle auf, wenn du MapKit-Suche oder Geocoding auf iOS benötigst:

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');