As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configure o código inicial para Amazon Location
Esta página fornece o código inicial para um exemplo de aplicativo iOS que se integra ao Amazon Location Service. Com esse código como ponto de partida, você pode criar aplicativos iOS com reconhecimento de localização usando recursos como mapas, geocodificação, cercas geográficas, rastreamento e roteamento.
Ative as permissões de localização em seu aplicativo
Abra seu projeto do Xcode.
Localize o
Info.plist
arquivo do projeto.Adicione as chaves necessárias para permissões de localização com base nos requisitos do seu aplicativo. Aqui estão as chaves:
NSLocationWhenInUseUsageDescription
: descrição do motivo pelo qual seu aplicativo precisa de acesso à localização quando está em uso.NSLocationAlwaysAndWhenInUseUsageDescription
: descrição do motivo pelo qual seu aplicativo precisa de acesso contínuo à localização.
Agora você precisará configurar os valores dos recursos em seu aplicativo. Adicione um novo arquivo chamado Config.xcconfig
e preencha os valores que você criou anteriormente no console da Amazon.
REGION = INDEX_NAME = MAP_NAME = IDENTITY_POOL_ID = TRACKER_NAME =
Na seção do navegador do lado esquerdo, selecione o projeto.
Na seção de alvos, selecione seu aplicativo e clique na guia de informações.
Adicione propriedades de informações com valores como os abaixo:
Adicione o
Config.swift
arquivo com o conteúdo abaixo, que lerá os valores de configuração do arquivo de informações do pacote.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 }
Crie uma nova pasta com o nome
ViewModel
e adicione umTrackingViewModel.swift
arquivo dentro dela.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 } }