Computer >> Máy Tính >  >> Lập trình >> IOS

Làm thế nào để sử dụng Swift để chạy trong nền để cung cấp vị trí hiện tại?

Để có được vị trí nền nhanh chóng, chúng ta cần thực hiện một vài bước

Nhận quyền từ người dùng, trong tệp info.plist của bạn, hãy thêm Quyền riêng tư- Luôn luôn vị trí và

khi sử dụng Mô tả, Quyền riêng tư - Khi nào trong mô tả sử dụng và thêm mô tả tương ứng.

Sau đó, bạn cần nhập khung CoreLocation sẽ cho phép bạn sử dụng tất cả các thư viện và phương pháp liên quan đến vị trí. Sau đó, bạn cần được người dùng cho phép để sử dụng vị trí. Để làm được điều đó, chúng ta cần tạo Đối tượng CLLocationManager và nhận ủy quyền.

var locationManager: CLLocationManager?
override func viewDidLoad() {
   super.viewDidLoad()
   locationManager = CLLocationManager()
   locationManager?.delegate = self
   locationManager?.requestAlwaysAuthorization()
}

Bây giờ khi bạn chạy ứng dụng và nếu nó yêu cầu vị trí trong mô-đun cụ thể, nó sẽ yêu cầu quyền của người dùng. Sau đó, bạn có thể thêm các mã sau để bắt đầu theo dõi các thay đổi vị trí, cập nhật vị trí, v.v.

locationManager.startUpdatingLocation()
locationManager.startMonitoringSignificantLocationChanges()
locationManager.allowsBackgroundLocationUpdates = true

Sau khi hoàn tất, bạn có thể sử dụng Phương thức didUpdateLocation của CLLocationManagerDelegate để cập nhật vị trí vào máy chủ của bạn trong nền.

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
   // Hit api to update location
}

Bây giờ bất cứ khi nào vị trí được cập nhật, phương thức CLLocationManagerDelegate này sẽ được gọi và bên trong nó, chúng ta có thể viết mã để cập nhật vị trí trên máy chủ.