ในการขออนุญาตบริการระบุตำแหน่งใน 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.") } }