Eine Swift-Bibliothek für what3words-UI-Komponenten. Dieses Swift-Komponentenpaket bietet eine unkomplizierte Möglichkeit, Ihrer App Funktionen der what3word-Schnittstelle hinzuzufügen, z. B. automatische Vorschläge für Textfelder, Kartenansichten oder what3words-Rasterlinien.
Es beinhaltet:
Um diese Bibliothek nutzen zu können, benötigen Sie einen what3words-API-Schlüssel, für den Sie sich hier anmelden können. Wenn Sie die Voice-API-Aufrufe verwenden möchten, müssen Sie Ihrem Konto einen Voice-API-Plan hinzufügen.
Sie können die Installation mit Swift Package Manager durchführen, indem Sie in Ihren Projekteinstellungen die folgende URL zu Swift Packages hinzufügen:
https://github.com/what3words/w3w-swift-components.git
Importieren Sie die Bibliotheken:
import W3WSwiftApi
import W3WSwiftComponents
import CoreLocation
Wenn Sie die Sprach-API auf dem Gerät verwenden, sollten Sie Mikrofonberechtigungen in Ihre Info.plist aufnehmen:
Das W3WAutoSuggestTextField
ist ein UITextField
, das drei Wortadressen vorschlägt, während der Benutzer Text eingibt. Optional gibt es eine Spracherkennungsoption.
Dies entspricht unserem W3WAutoSuggestTextFieldProtocol
. Daher ist die Schnittstelle unter Documentation/Autosuggest/autosuggest.md dokumentiert.
Der W3WAutoSuggestSearchController
ist ein UISearchController
, der drei Wortadressen vorschlägt, während der Benutzer Text eingibt. Dies ermöglicht die Einbettung dieser Funktionalität in Dinge wie UINavigationController
. Optional gibt es eine Spracherkennungsoption.
Dies entspricht unserem W3WAutoSuggestTextFieldProtocol
. Daher ist die Schnittstelle unter Documentation/Autosuggest/autosuggest.md dokumentiert.
Mit Map Helper können Sie what3words-Kartenfunktionen einfach in eine vorhandene Karte integrieren.
W3WMapHelper
entspricht W3WMapViewProtocol
. Eine Funktionsreferenz dafür finden Sie unter Documentation/Map/map.md
let api = What3WordsV4(apiKey: "YourApiKey")
let mapHelper = W3WMapHelper(api, map: yourMKMapView)
Wenn Ihre App bereits über einen ViewController verfügt, der über eine Karte verfügt, bietet W3WMapHelper
praktische Funktionen, die Sie zu Ihren MKMapViewDelegate
-Funktionen hinzufügen können, damit what3words-Raster- und Pin-Anmerkungen auf Ihrer Karte angezeigt werden. Das oben verlinkte Beispiel zeigt, wo Sie die Aufrufe platzieren würden und wie Sie den W3WMapHelper
instanziieren.
W3WMapView
entspricht W3WMapViewProtocol
. Eine Funktionsreferenz dafür finden Sie unter Documentation/Map/map.md
let api = What3WordsV4(apiKey: "YourApiKey")
let mapview = W3WMapView(api)
Wir haben W3WMapView
als schnelle und einfache Möglichkeit entwickelt, die Funktionalität von what3words schnell in Ihre App zu integrieren.
Ersetzen Sie einfach Ihr MKMapView durch W3WMapView, und Ihre App sollte sich wie zuvor verhalten, außer dass sie what3words-Rasterlinien zeichnet und über einige neue Funktionen verfügt, wie etwa addMarker(at: "filled.count.soap")
.
Es ist von MKMapView
abgeleitet, Apple empfiehlt jedoch nicht, neue Objekte von MKMapView abzuleiten, vermutlich weil sich die Benutzeroberfläche in Zukunft ändern könnte. Betrachten Sie dies also als eine schnelle und schmutzige Möglichkeit, die Funktionalität in Ihre App zu integrieren.
Der bessere Ansatz wäre die Verwendung W3WMapHelper
, das so konzipiert ist, dass es gut in Ihre MKMapViewDelegate
konforme Klasse passt, vermutlich ein UIViewController
.
W3WMapViewController
entspricht W3WMapViewProtocol
. Eine Funktionsreferenz dafür finden Sie unter Documentation/Map/map.md
let api = What3WordsV4(apiKey: "YourApiKey")
let vc = W3WMapViewController(api)
Dies demonstriert W3WMapViewController
, eine High-Level-Komponente mit einfach zu verwendender what3words-Funktionalität.
Wenn Sie keine Karte in Ihrer App haben und schnell eine mit einigen Standardverhaltensweisen hinzufügen möchten, ist diese möglicherweise das Richtige für Sie.
Das Maßsystem in diesen Komponenten wird automatisch auf die Präferenz oder das Gebietsschema des Benutzers eingestellt, Sie können dies jedoch durch .metric
oder .imperial
überschreiben:
W3WSettings . measurement = . metric
Die W3WAutosuggest-Komponenten wurden in etwa 50 Sprachen übersetzt und Localizable.strings
-Dateien für diese befinden sich in den Ressourcen dieses Pakets. Damit sie wie alle iOS-Lokalisierungseinstellungen funktionieren, fügen Sie unbedingt die Sprachen hinzu, die Sie in Ihren Projekteinstellungen unter Info -> Lokalisierungen verwenden möchten.