Configurer le code initial pour Amazon Location - Amazon Location Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configurer le code initial pour Amazon Location

Cette page fournit le code initial d'un exemple d'application iOS qui s'intègre à Amazon Location Service. Avec ce code comme point de départ, vous pouvez créer des applications iOS géolocalisées en tirant parti de fonctionnalités telles que les cartes, le géocodage, le géofencing, le suivi et le routage.

Activez les autorisations de localisation dans votre application
  1. Ouvrez votre projet Xcode.

  2. Localisez le Info.plist fichier du projet.

  3. Ajoutez les clés nécessaires pour les autorisations de localisation en fonction des exigences de votre application. Voici les clés :

    • NSLocationWhenInUseUsageDescription: description des raisons pour lesquelles votre application a besoin d'un accès à la localisation lorsqu'elle est utilisée.

    • NSLocationAlwaysAndWhenInUseUsageDescription: description des raisons pour lesquelles votre application a besoin d'un accès permanent à la localisation.

Vous devez maintenant configurer les valeurs des ressources dans votre application. Ajoutez un nouveau fichier nommé Config.xcconfig et renseignez les valeurs que vous avez créées précédemment dans la console Amazon.

REGION = INDEX_NAME = MAP_NAME = IDENTITY_POOL_ID = TRACKER_NAME =
  1. Dans la section du navigateur de gauche, sélectionnez le projet.

  2. Dans la section des cibles, sélectionnez votre application et cliquez sur l'onglet d'informations.

  3. Ajoutez des propriétés d'information avec des valeurs comme celles ci-dessous :

  4. Ajoutez le Config.swift fichier avec le contenu ci-dessous, qui lira les valeurs de configuration à partir du fichier d'informations du bundle.

    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. Créez un nouveau dossier portant ce nom ViewModel et ajoutez-y un TrackingViewModel.swift fichier.

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