Configurar el código inicial para Amazon Location - Amazon Location Service

Configurar el código inicial para Amazon Location

En esta página se proporciona el código inicial de un ejemplo de aplicación iOS que se integra con Amazon Location Service. Con este código como punto de partida, puede crear aplicaciones iOS con reconocimiento de ubicación y usar características como los mapas, la geocodificación, el geovallado, el rastreo y el enrutamiento.

Habilitar los permisos de ubicación en su aplicación
  1. Abra el proyecto de Xcode.

  2. Localice el archivo Info.plist del proyecto.

  3. Agregue las claves necesarias para los permisos de ubicación en función de los requisitos de su aplicación. Estas son las claves:

    • NSLocationWhenInUseUsageDescription: descripción de por qué su aplicación necesita acceso a la ubicación cuando está en uso.

    • NSLocationAlwaysAndWhenInUseUsageDescription: descripción de por qué su aplicación necesita un acceso continuo a la ubicación.

Ahora tendrá que configurar los valores de los recursos en su aplicación. Agregue un nuevo archivo con el nombre Config.xcconfig y rellene los valores que creó anteriormente en la consola de Amazon.

REGION = INDEX_NAME = MAP_NAME = IDENTITY_POOL_ID = TRACKER_NAME =
  1. En la sección del navegador del lado izquierdo, seleccione el proyecto.

  2. En la sección de objetivos, seleccione su aplicación y haga clic en la pestaña de información.

  3. Agregue propiedades de información con valores como los siguientes:

  4. Agregue el archivo Config.swift con el contenido siguiente, que leerá los valores de configuración del archivo de información del paquete.

    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. Cree una nueva carpeta con el nombre ViewModel y agregue un archivo TrackingViewModel.swift en su interior.

    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 } }