स्थान अनुमति का अनुरोध करने के लिए हम Apple के CLLocationManager वर्ग का उपयोग करेंगे। कोर लोकेशन सेवाओं को कॉन्फ़िगर करने, शुरू करने और बंद करने के लिए आप इस वर्ग के उदाहरणों का उपयोग करते हैं।
आप यहां CLLocationManager वर्ग के बारे में अधिक पढ़ सकते हैं।
https://developer.apple.com/documentation/corelocation/cllocationmanager
आईओएस ऐप्स स्थान पहुंच के दो स्तरों में से एक का समर्थन कर सकते हैं।
-
एप्लिकेशन का उपयोग करते समय - ऐप उपयोग में होने पर ऐप डिवाइस के स्थान तक पहुंच सकता है। इसे "कब-में-उपयोग प्राधिकरण" के रूप में भी जाना जाता है।
-
हमेशा - जब ऐप उपयोग में हो या बैकग्राउंड में हो तो ऐप डिवाइस की लोकेशन एक्सेस कर सकता है।
यहां हम उपयोग में होने वाले प्राधिकरण का उपयोग करेंगे:स्थान सेवाओं का उपयोग करने के लिए प्राधिकरण का अनुरोध केवल तभी करें जब आपका ऐप चल रहा हो।
https://developer.apple.com/documentation/corelocation/choosing_the_authorization_level_for_location_services/requesting_when-in-use_authorization
चरण 1 - ओपन एक्सकोड, सिंगल व्यू एप्लिकेशन, इसे लोकेशन सर्विसेज नाम दें।
चरण 2 - Main.storyboard खोलें और एक बटन जोड़ें और इसे getLocation नाम दें।
चरण 3 - ViewController.swift में बटन का @IBAction जोड़ें
@IBAction func btnGetLocation(_ sender: Any) { }
चरण 4 - स्थान वर्गों का उपयोग करने के लिए कोरलोकेशन आयात करें। कोरलोकेशन आयात करें
चरण 5 - अपना info.plist खोलें (एप्लिकेशन के चलने के दौरान स्थान अपडेट के लिए अनुमतियों को सक्षम करने के लिए एक विशेष कुंजी की आवश्यकता होती है)। राइट-क्लिक करें और Add Row चुनें। निम्नलिखित मान दर्ज करें।
चरण 6 ViewController.swift खोलें और CLLocationManager का ऑब्जेक्ट बनाएं,
let locationManager = CLLocationManager()
चरण 7 - ViewController.swift में बटन क्रिया में निम्नलिखित कोड जोड़ें,
@IBAction func btnGetLocation(_ sender: Any) { let locStatus = CLLocationManager.authorizationStatus() switch locStatus { case .notDetermined: locationManager.requestWhenInUseAuthorization() return case .denied, .restricted: let alert = UIAlertController(title: "Location Services are disabled", message: "Please enable Location Services in your Settings", preferredStyle: .alert) let okAction = UIAlertAction(title: "OK", style: .default, handler: nil) alert.addAction(okAction) present(alert, animated: true, completion: nil) return case .authorizedAlways, .authorizedWhenInUse: break } }
प्राधिकरणस्टैटस वर्तमान प्राधिकरण स्थिति को locStatus पर लौटाता है। ऐप के अग्रभूमि में रहने के दौरान जब उपयोग में प्राधिकरण स्थान अपडेट प्राप्त करता है। जब स्थान सेवाएं अक्षम होती हैं, तो उपयोगकर्ता को संदेश के साथ एक अलर्ट दिखाया जाएगा स्थान सेवाएं अक्षम हैं।
आइए एप्लिकेशन चलाते हैं,