CLLocationManager के साथ लोकेशन परमिशन रिक्वेस्ट करना
Swift में iOS में लोकेशन सर्विसेज परमिशन रिक्वेस्ट करने के लिए हम CLLocationManager का उपयोग कर सकते हैं।
हम इसे एक सैंपल प्रोजेक्ट की मदद से करेंगे। तो, एक नया प्रोजेक्ट बनाएं। सबसे पहले, हमें एक locationManager ऑब्जेक्ट बनाने की आवश्यकता है, इसलिए अपने व्यू कंट्रोलर में:
var locationManager = CLLocationManager()
अब, हमें सबसे पहले यह जांचना होगा कि डिवाइस पर लोकेशन सर्विसेज सक्षम हैं या नहीं। इसे जांचने के लिए हम उपयोग करेंगे:
CLLocationManager.locationServicesEnabled() फंक्शन, जो एक बूलियन मान लौटाता है जो दिखाता है कि डिवाइस पर लोकेशन सर्विस सक्रिय है या नहीं।
if CLLocationManager.locationServicesEnabled() {
print("permissions allowed")
} else {
locationManager.requestAlwaysAuthorization()
locationManager.requestWhenInUseAuthorization()
}
उपरोक्त उदाहरण में, यदि लोकेशन सर्विसेज सक्षम हैं, तो हम "permissions allowed" प्रिंट करते हैं, अन्यथा हम दो प्रकार के ऑथराइजेशन रिक्वेस्ट करते हैं: AlwaysInUse और WhenInUse ऑथराइजेशन।
अब, आइए एक और उदाहरण देखें जहां हम देखेंगे कि यदि डिवाइस पर लोकेशन सर्विसेज सक्रिय हैं तो किस प्रकार की परमिशन दी गई है।
हम CLLocationManager.authorizationStatus() मेथड का उपयोग करेंगे, जो हमें दी गई ऑथराइजेशन का प्रकार लौटाता है। यह एक एनम है जिसमें 5 संभावित मान हैं।
आधिकारिक Apple डॉक्यूमेंटेशन के अनुसार, एनम में निम्नलिखित मान हैं:
notDetermined, restricted, denied, authorized, authorizedWhenInUse.
दूसरा उदाहरण:
if CLLocationManager.locationServicesEnabled() {
switch CLLocationManager.authorizationStatus() {
case .authorizedAlways, .authorizedWhenInUse:
print("authorized.")
case .denied, .restricted, .notDetermined:
print("not authorized.")
}
}