Configura il codice iniziale per Amazon Location - Servizio di posizione Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configura il codice iniziale per Amazon Location

Questa pagina fornisce il codice iniziale per un'applicazione iOS di esempio che si integra con Amazon Location Service. Con questo codice come punto di partenza, puoi creare app iOS che riconoscono la posizione sfruttando funzionalità come mappe, geocodifica, geofencing, tracciamento e routing.

Abilita le autorizzazioni di localizzazione nella tua app
  1. Apri il tuo progetto Xcode.

  2. Individua il Info.plist file del progetto.

  3. Aggiungi le chiavi necessarie per le autorizzazioni di localizzazione in base ai requisiti dell'app. Ecco le chiavi:

    • NSLocationWhenInUseUsageDescription: Descrizione del motivo per cui l'app necessita dell'accesso alla posizione quando è in uso.

    • NSLocationAlwaysAndWhenInUseUsageDescription: Descrizione del motivo per cui l'app necessita di un accesso continuo alla posizione.

Ora dovrai configurare i valori delle risorse nella tua app. Aggiungi un nuovo file denominato Config.xcconfig e compila i valori che avevi creato in precedenza nella console Amazon.

REGION = INDEX_NAME = MAP_NAME = IDENTITY_POOL_ID = TRACKER_NAME =
  1. Dalla sezione del navigatore sul lato sinistro, seleziona il progetto.

  2. Nella sezione obiettivi, seleziona la tua app e fai clic sulla scheda delle informazioni.

  3. Aggiungi proprietà informative con valori come i seguenti:

  4. Aggiungi il Config.swift file con i contenuti seguenti, che leggerà i valori di configurazione dal file di informazioni del pacchetto.

    import Foundation enum Config { static let region = Bundle.main.object(forInfoDictionaryKey: "Region") as! String static let mapName = Bundle.main.object(forInfoDictionaryKey: "MapName") as! String static let indexName = Bundle.main.object(forInfoDictionaryKey: "IndexName") as! String static let identityPoolId = Bundle.main.object(forInfoDictionaryKey: "IdentityPoolId") as! String static let trackerName = Bundle.main.object(forInfoDictionaryKey: "TrackerName") as! String }
  5. Crea una nuova cartella con il nome ViewModel e aggiungi un TrackingViewModel.swift file al suo interno.

    import SwiftUI import AmazonLocationiOSAuthSDK import MapLibre final class TrackingViewModel : ObservableObject { @Published var trackingButtonText = NSLocalizedString("StartTrackingLabel", comment: "") @Published var trackingButtonColor = Color.blue @Published var trackingButtonIcon = "play.circle" @Published var region : String @Published var mapName : String @Published var indexName : String @Published var identityPoolId : String @Published var trackerName : String @Published var showAlert = false @Published var alertTitle = "" @Published var alertMessage = "" @Published var centerLabel = "" var clientIntialised: Bool var client: LocationTracker! var authHelper: AuthHelper var credentialsProvider: LocationCredentialsProvider? var mlnMapView: MLNMapView? var mapViewDelegate: MapViewDelegate? var lastGetTrackingTime: Date? var trackingActive: Bool init(region: String, mapName: String, indexName: String, identityPoolId: String, trackerName: String) { self.region = region self.mapName = mapName self.indexName = indexName self.identityPoolId = identityPoolId self.trackerName = trackerName self.authHelper = AuthHelper() self.trackingActive = false self.clientIntialised = false } func authWithCognito(identityPoolId: String?) { guard let identityPoolId = identityPoolId?.trimmingCharacters(in: .whitespacesAndNewlines) else { alertTitle = NSLocalizedString("Error", comment: "") alertMessage = NSLocalizedString("NotAllFieldsAreConfigured", comment: "") showAlert = true return } credentialsProvider = authHelper.authenticateWithCognitoUserPool(identityPoolId: identityPoolId) initializeClient() } func initializeClient() { client = LocationTracker(provider: credentialsProvider!, trackerName: trackerName) clientIntialised = true } }