Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> IOS

จะขออนุญาตโดยทางโปรแกรมเพื่อใช้บริการระบุตำแหน่งใน iPhone / iOS ได้อย่างไร


ในการขออนุญาตบริการระบุตำแหน่งใน ios ด้วยความรวดเร็ว เราสามารถใช้ CLLocationManager

เราจะทำสิ่งนี้ด้วยความช่วยเหลือของโครงการตัวอย่าง ดังนั้น สร้างโครงการใหม่ อันดับแรก เราต้องสร้างวัตถุ locationManager ดังนั้นในตัวควบคุมมุมมองของคุณ

var locationManager = CLLocationManager()

ก่อนอื่นเราต้องตรวจสอบว่าบริการระบุตำแหน่งเปิดใช้งานบนอุปกรณ์หรือไม่ ในการตรวจสอบนี้ เราจะใช้

ฟังก์ชัน CLLocationManager.locationServicesEnabled() ซึ่งส่งคืนค่าบูลีนที่แสดงว่าบริการระบุตำแหน่งบนอุปกรณ์ทำงานอยู่หรือไม่

if CLLocationManager.locationServicesEnabled() {
   print("permissions allowed")
} else {
   locationManager.requestAlwaysAuthorization()
   locationManager.requestWhenInUseAuthorization()
}

ในตัวอย่างด้านบน หากเปิดใช้งานบริการระบุตำแหน่ง เราจะพิมพ์ “อนุญาตการอนุญาต” มิฉะนั้น เราจะขอการอนุญาตสองประเภท ได้แก่ การให้สิทธิ์ alwaysInUse และ WhenInUse

ตอนนี้ มาดูตัวอย่างอื่นที่เราจะดูว่าได้รับอนุญาตประเภทใดบ้างหากบริการระบุตำแหน่งทำงานบนอุปกรณ์

เราจะใช้เมธอด CLLocationManager.authorizationStatus() ซึ่งส่งคืนประเภทของการอนุญาตที่ให้มา มันคือ enum ซึ่งมีค่าที่เป็นไปได้ 5 ค่า

ตามเอกสารอย่างเป็นทางการของ Apple enum มีค่าดังต่อไปนี้

notDetermined, ถูกจำกัด, ปฏิเสธ, อนุญาต, AuthorizedWhenInUse.

มาดูตัวอย่างอื่นกัน

if CLLocationManager.locationServicesEnabled() {
   switch CLLocationManager.authorizationStatus() {
      case .authorizedAlways,.authorizedWhenInUse : print("authorized.")
      case .denied,.restricted,.notDetermined : print("not authorized.")
   }
}