खोज…


वाक्य - विन्यास

  1. desiredAccuracy
  2. distanceFilter
  3. requestLocation ()
  4. startUpdatingLocation ()
  5. allowDeferredLocationUpdates (untilTraveled: टाइमआउट :)
  6. startMonitoringSignificantLocationChanges ()
  7. allowDeferredLocationUpdates (untilTraveled: टाइमआउट :)
  8. authorizedAlways
  9. authorizedWhenInUse
  10. locationManager (_: didChangeAuthorization :)

टिप्पणियों

रनटाइम पर एक स्थान का अनुकरण करें

  1. Xcode से ऐप रन करें।
  2. डिबग बार में, "सिम्यूलेट लोकेशन" बटन पर क्लिक करें।
  3. मेनू से एक स्थान चुनें।

स्थान का अनुकरण करें - डीबग करें

लिंक कोरलोकेशन फ्रेमवर्क

कोरलोकेशन फ्रेमवर्क को जोड़ना

CoreLocation कार्यक्षमता का उपयोग करने वाले अपनी कक्षाओं में CoreLocation मॉड्यूल आयात करें।

//Swift
import CoreLocation

//Objective-C
#import <CoreLocation/CoreLocation.h>

अनुरोध स्थान सेवाओं का उपयोग करने की अनुमति

एप्लिकेशन की प्राधिकरण स्थिति की जाँच करें:

//Swift
let status: CLAuthorizationStatus = CLLocationManager.authorizationStatus()

//Objective-C
CLAuthorizationStatus status = [CLLocationManager authorizationStatus];

पालन स्थिरांक के खिलाफ स्थिति का परीक्षण करें:

//Swift
switch status {
case .NotDetermined:
    // Do stuff
case .AuthorizedAlways:
    // Do stuff
case .AuthorizedWhenInUse:
    // Do stuff
case .Restricted:
    // Do stuff
case .Denied:
    // Do stuff
}

//Objective-C
switch (status) {
    case kCLAuthorizationStatusNotDetermined:
        
        //The user hasn't yet chosen whether your app can use location services or not.
        
        break;
        
    case kCLAuthorizationStatusAuthorizedAlways:
        
        //The user has let your app use location services all the time, even if the app is in the background.
        
        break;
        
    case kCLAuthorizationStatusAuthorizedWhenInUse:
        
        //The user has let your app use location services only when the app is in the foreground.
        
        break;
        
    case kCLAuthorizationStatusRestricted:
        
        //The user can't choose whether or not your app can use location services or not, this could be due to parental controls for example.
        
        break;
        
    case kCLAuthorizationStatusDenied:
        
        //The user has chosen to not let your app use location services.
        
        break;
        
    default:
        break;
}

एप्लिकेशन प्राप्त करते समय स्थान सेवा की अनुमति प्राप्त करना

स्थान जब उपयोग उपयोग संवाद में

सरलतम विधि आपके रूट व्यू कंट्रोलर की संपत्ति के रूप में स्थान प्रबंधक को इनिशियलाइज़ करना है और इसके viewDidLoad में अनुमति अनुरोध को रखना है।

यह चेतावनी नियंत्रक को अनुमति के लिए कहता है:

//Swift
let locationManager = CLLocationManager()
locationManager.requestWhenInUseAuthorization()

//Objective-C
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
[locationManager requestWhenInUseAuthorization];

NSLocationWhenInUseUsageDescription कुंजी को अपनी Info.plist में जोड़ें। मान का उपयोग अलर्ट नियंत्रक के message लेबल में किया जाएगा।

यहाँ छवि विवरण दर्ज करें


लोकेशन सर्विस की अनुमति हमेशा मिलती रही

यहाँ छवि विवरण दर्ज करें

एप्लिकेशन सक्रिय नहीं होने पर भी स्थान सेवाओं का उपयोग करने की अनुमति मांगने के लिए, इसके बजाय निम्नलिखित कॉल का उपयोग करें:

//Swift
locationManager.requestAlwaysAuthorization()

//Objective-C
[locationManager requestAlwaysAuthorization];

फिर अपने Info.plist में NSLocationAlwaysUsageDescription कुंजी जोड़ें। फिर से, मूल्य का उपयोग अलर्ट नियंत्रक के message लेबल में किया जाएगा।

यहाँ छवि विवरण दर्ज करें

GPX फ़ाइल का उपयोग करके स्वयं का कस्टम स्थान जोड़ें

स्थान सेवाओं के लिए जाँच करने के लिए हमें वास्तविक उपकरण की आवश्यकता होती है लेकिन परीक्षण के उद्देश्य से हम सिम्युलेटर का भी उपयोग कर सकते हैं और नीचे दिए गए चरणों का पालन करके अपना स्थान जोड़ सकते हैं:

  • अपनी परियोजना में नई GPX फ़ाइल जोड़ें।
  • GPX फ़ाइल में तरह तरह के बिंदुओं को जोड़ते हैं
<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode"> 
<!--
        Provide one or more waypoints containing a latitude/longitude pair. If you provide one
        waypoint, Xcode will simulate that specific location. If you provide multiple waypoints,
        Xcode will simulate a route visitng each waypoint.
 -->
<wpt lat="52.599878" lon="4.702029">
     <name>location name (eg. Florida)</name>
</wpt>
  • फिर उत्पाद पर जाएँ -> योजना -> योजना संपादित करें और अपने GPX फ़ाइल नाम के रूप में RUN सेट डिफ़ॉल्ट स्थान में।

पृष्ठभूमि में स्थान सेवाएँ

एप्लिकेशन के पृष्ठभूमि में मानक स्थान सेवाओं का उपयोग करने के लिए, आपको पहले लक्ष्य सेटिंग्स की क्षमता टैब में Background Modes पर बारी की आवश्यकता है, और Location updates चयन Location updates

बैकग्राउंड मोड्स

या, इसे सीधे Info.plist में जोड़ें।

<key>NSLocationAlwaysUsageDescription</key>
<string>I want to get your location Information in background</string>

<key>UIBackgroundModes</key>
<array>
    <string>location</string>
</array>

फिर आपको CLLocationManager को सेटअप करने की आवश्यकता है

उद्देश्य सी

//The Location Manager must have a strong reference to it.
_locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;

//Request Always authorization (iOS8+)
if ([_locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
    [_locationManager requestAlwaysAuthorization];
}

//Allow location updates in the background (iOS9+)
if ([_locationManager respondsToSelector:@selector(allowsBackgroundLocationUpdates)]) {
    _locationManager.allowsBackgroundLocationUpdates = YES;
}

[_locationManager startUpdatingLocation];

तीव्र

self.locationManager.delegate = self

if #available (iOS 8.0,*) {
    self.locationManager.requestAlwaysAuthorization()
}

if #available (iOS 9.0,*) {
    self.locationManager.allowsBackgroundLocationUpdates = true
}

self.locationManager.startUpdatingLocation()


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow