Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Siapkan kode awal untuk Lokasi Amazon
Halaman ini menyediakan kode awal untuk contoh aplikasi iOS yang terintegrasi dengan Amazon Location Service. Dengan kode ini sebagai titik awal, Anda dapat membangun aplikasi iOS yang sadar lokasi dengan memanfaatkan fitur seperti peta, geocoding, geofencing, pelacakan, dan perutean.
Mengaktifkan izin Lokasi di aplikasi Anda
Buka proyek Xcode Anda.
Temukan
Info.plist
file proyek.Tambahkan kunci yang diperlukan untuk izin lokasi berdasarkan persyaratan aplikasi Anda. Berikut kuncinya:
NSLocationWhenInUseUsageDescription
: Deskripsi mengapa aplikasi Anda memerlukan akses lokasi saat sedang digunakan.NSLocationAlwaysAndWhenInUseUsageDescription
: Deskripsi mengapa aplikasi Anda membutuhkan akses lokasi berkelanjutan.
Sekarang Anda perlu mengonfigurasi nilai sumber daya di aplikasi Anda. Tambahkan file baru bernama Config.xcconfig
dan isi nilai yang telah Anda buat sebelumnya di konsol Amazon.
REGION = INDEX_NAME = MAP_NAME = IDENTITY_POOL_ID = TRACKER_NAME =
Dari bagian navigator sisi kiri, pilih proyek.
Di bawah bagian target, pilih aplikasi Anda dan klik tab info.
Tambahkan properti info dengan nilai seperti di bawah ini:
Tambahkan
Config.swift
file dengan konten di bawah ini, yang akan membaca nilai konfigurasi dari file info 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 }
Buat folder baru dengan nama
ViewModel
dan tambahkanTrackingViewModel.swift
file di dalamnya.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 } }