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

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configura el código inicial para Amazon Location

En esta página se proporciona el código inicial de una aplicación iOS de ejemplo que se integra con Amazon Location Service. Con este código como punto de partida, puedes crear aplicaciones iOS con reconocimiento de ubicación y aprovechar funciones como los mapas, la geocodificación, el geocercado, el rastreo y la generación de rutas.

Habilita los permisos de ubicación en tu aplicación
  1. Abre tu proyecto de Xcode.

  2. Localiza el Info.plist archivo del proyecto.

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

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

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

Ahora tendrá que configurar los valores de los recursos en su aplicación. Añade un nuevo archivo con el nombre Config.xcconfig y rellena los valores que creaste 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, selecciona el proyecto.

  2. En la sección de objetivos, selecciona tu aplicación y haz clic en la pestaña de información.

  3. Añade propiedades de información con valores como los siguientes:

  4. Añada el Config.swift archivo 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. Crea una nueva carpeta con el nombre ViewModel y añade un TrackingViewModel.swift archivo dentro de ella.

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