iOS उपभोक्ता SDK मॉड्यूल के लिए माइग्रेशन

iOS के लिए Consumer SDK टूल से, मॉड्यूलर आर्किटेक्चर का इस्तेमाल करके राइडशेयर करने वाले ऐप्लिकेशन बनाए जा सकते हैं. एपीआई के उन हिस्सों का इस्तेमाल करें जिन्हें आपको अपने ऐप्लिकेशन के लिए इस्तेमाल करना है. साथ ही, उन्हें अपने एपीआई से इंटिग्रेट किया जा सकता है. अलग-अलग सुविधाओं के लिए, उपभोक्ता SDK टूल के एपीआई को अलग-अलग मॉड्यूल में इकट्ठा किया जाता है.

अगर आपका राइडशेयरिंग ऐप्लिकेशन, उपभोक्ता SDK के पुराने वर्शन का इस्तेमाल करता है, तो आपको इस मॉड्यूलर आर्किटेक्चर का इस्तेमाल करने के लिए, अपना ऐप्लिकेशन अपग्रेड करना होगा. इस माइग्रेशन गाइड में, अपने ऐप्लिकेशन को अपग्रेड करने का तरीका बताया गया है.

खास जानकारी

कंज़्यूमर SDK मॉड्यूलर आर्किटेक्चर में, MapViewSession ऑब्जेक्ट दिया जाता है, जिसमें यूज़र इंटरफ़ेस का स्टेटस बना रहता है. Consumer SDK के पिछले वर्शन में, ऐप्लिकेशन एक राज्यों से दूसरे वर्शन पर भेजे जाते थे. इस मॉड्यूलर आर्किटेक्चर से, MapViewSession ऑब्जेक्ट बनाया जा सकता है. साथ ही, आपके पास सेशन को मैप पर दिखाने का विकल्प भी होता है. अगर कोई सेशन नहीं दिखाया जाता, तो मैप वही कॉन्टेंट दिखाता है जो सिर्फ़ iOS के लिए Maps SDK टूल का इस्तेमाल करके दिखाया जाता है.

MapViewSession ऑब्जेक्ट, किसी मॉड्यूल के एक लाइफ़साइकल इस्तेमाल के इंस्टेंस को दिखाता है. सेशन, मॉड्यूल एपीआई में ऐक्सेस पॉइंट होते हैं. उदाहरण के लिए, गतिविधि शेयर करने वाले सेशन में एक यात्रा के बारे में बताया गया है. यात्रा को मॉनिटर करने के लिए, आप JourneySharingSession ऑब्जेक्ट से इंटरैक्ट करते हैं.

TripModel ऑब्जेक्ट

Consumer SDK के पिछले वर्शन में, TripService इंस्टेंस की मदद से, एक बार में सिर्फ़ एक लाइव ट्रिप को मॉनिटर किया जा सकता था. TripModel ऑब्जेक्ट का इस्तेमाल करके, एक TripService इंस्टेंस में कई लाइव यात्राओं को मॉनिटर किया जा सकता है. TripModel का एक इंस्टेंस TripService से बनाया जा सकता है और TripModel का हर इंस्टेंस एक खास यात्रा से जुड़ा होता है.

TripModel इंस्टेंस, इवेंट को अपडेट करता है. ऐसा तब होता है, जब रजिस्टर किया गया कोई सदस्य, अपडेट होने के बावजूद यात्रा पर हो.

TripModel ऑब्जेक्ट का इस्तेमाल, JourneySharingSession ऑब्जेक्ट का इंस्टेंस बनाने के लिए भी किया जा सकता है.

MapViewSession राज्य

MapViewSession इंस्टेंस को एक बार में सिर्फ़ एक mapView में जोड़ा जा सकता है. साथ ही, यह इन दोनों में से किसी एक स्थिति में हो सकता है:

  • GMTCMapViewSessionStateInactive स्थिति से पता चलता है कि इस MapViewSession को या तो अब तक किसी mapView में नहीं जोड़ा गया है या इसे mapView से हटा दिया गया है. जब mapView से MapViewSession इंस्टेंस हटाया जाता है, तो didRemoveFromMapView वाला तरीका कॉल किया जाता है.

    hideMapViewSession या hideAllMapViewSessions तरीके को कॉल करने से mapView से mapViewSession हट जाता है:

    [_mapView hideMapViewSession:mapViewSessionA];
    

    या

    [_mapView hideAllMapViewSessions];
    
  • GMTCMapViewSessionStateActive स्थिति से पता चलता है कि इस MapViewSession को mapView में जोड़ा गया है. जब MapViewSession के किसी इंस्टेंस को mapView में जोड़ा जाता है, तो didAddToMapView तरीके को कॉल किया जाता है. showMapViewSession तरीके को कॉल करने से mapViewSession, टारगेट mapView में जुड़ जाता है:

    [_mapView showMapViewSession:mapViewSessionA];
    

सिर्फ़ डेटा वाले और यूज़र इंटरफ़ेस कॉम्पोनेंट का इस्तेमाल करना

सिर्फ़ डेटा वाले कॉम्पोनेंट या 'मांग पर राइड और डिलीवरी सलूशन' से मिले यूज़र इंटरफ़ेस एलिमेंट एपीआई का इस्तेमाल करके, राइडशेयरिंग ऐप्लिकेशन बनाया जा सकता है.

सिर्फ़ डेटा वाले कॉम्पोनेंट का इस्तेमाल करना

सिर्फ़ डेटा वाले कॉम्पोनेंट का इस्तेमाल करके राइडशेयरिंग ऐप्लिकेशन बनाने के लिए:

  1. सेवा देने वाली कंपनी का आईडी और ऐक्सेस टोकन देने वाली कंपनी की जानकारी देकर, GMTCServices ऑब्जेक्ट को शुरू करें.
  2. GMTCServices ऑब्जेक्ट के शेयर किए गए इंस्टेंस से, tripService प्रॉपर्टी पाएं.
  3. किसी खास यात्रा के लिए, tripService ऑब्जेक्ट के tripModelForTripName तरीके का इस्तेमाल करके, GMTCTripModel ऑब्जेक्ट का इंस्टेंस बनाएं या फिर से पाएं.
  4. यात्रा की निगरानी शुरू करने के लिए, GMTCTripModel इंस्टेंस के लिए कॉलबैक रजिस्टर करें.

यहां दिए गए उदाहरण में, सिर्फ़ डेटा वाले कॉम्पोनेंट इस्तेमाल करने का तरीका बताया गया है:

[GMTCServices setAccessTokenProvider:[[AccessTokenProvider alloc] init]
                          providerID:yourProviderID];
GMTCTripService *tripService = [GMTCServices sharedServices].tripService;

// Create a tripModel instance for listening to updates to the trip specified by this trip name.
GMTCTripModel *tripModel = [tripService tripModelForTripName:tripName];

// Register for the trip update events.
[tripModel registerSubscriber:self];

// To stop listening for the trip update.
[tripModel unregisterSubscriber:self];

यूज़र इंटरफ़ेस (यूआई) एलिमेंट के एपीआई इस्तेमाल करना

'मांग पर राइड और डिलीवरी समाधान' के यूज़र इंटरफ़ेस एलिमेंट एपीआई की मदद से उपभोक्ता ऐप्लिकेशन बनाने के लिए, यह तरीका अपनाएं:

  1. सेवा देने वाली कंपनी का आईडी और ऐक्सेस टोकन देने वाली कंपनी की जानकारी देकर, GMTCServices ऑब्जेक्ट को शुरू करें.
  2. बेस मैप को रेंडर करने के लिए, GMTCMapView ऑब्जेक्ट शुरू करें.
  3. GMTCServices ऑब्जेक्ट के शेयर किए गए इंस्टेंस से, tripService प्रॉपर्टी पाएं.
  4. किसी खास यात्रा के लिए, tripService ऑब्जेक्ट के tripModelForTripName तरीके का इस्तेमाल करके, GMTCTripModel ऑब्जेक्ट का इंस्टेंस बनाएं या फिर से पाएं.
  5. GMTCTripModel इंस्टेंस के साथ एक GMTCJourneySharingSession ऑब्जेक्ट बनाएं.
  6. mapView पर GMTCJourneySharingSession ऑब्जेक्ट दिखाएं.
  7. यात्रा की निगरानी शुरू करने के लिए, GMTCTripModel इंस्टेंस के लिए कॉलबैक रजिस्टर करें.

नीचे दिए गए उदाहरण में, यूज़र इंटरफ़ेस एपीआई को इस्तेमाल करने का तरीका बताया गया है:

[GMTCServices setAccessTokenProvider:[[AccessTokenProvider alloc] init]
                          providerID:yourProviderID];
GMTCTripService *tripService = [GMTCServices sharedServices].tripService;

// Create a tripModel instance for listening to updates to the trip specified by this trip name.
GMTCTripModel *tripModel = [tripService tripModelForTripName:tripName];
GMTCJourneySharingSession *journeySharingSession =
  [[GMTCJourneySharingSession alloc] initWithTripModel:tripModel];

// Add the journeySharingSession instance on the mapView for UI updating.
[self.mapView showMapViewSession:journeySharingSession];

// Register for the trip update events.
[tripModel registerSubscriber:self];

// To remove the JourneySharingSession from the mapView:
[self.mapView hideMapViewSession:journeySharingSession];

// To stop listening for the trip update.
[tripModel unregisterSubscriber:self];

मॉड्यूलर आर्किटेक्चर कोड में बदलाव

अगर आपका राइडशेयरिंग ऐप्लिकेशन, Consumer SDK के पुराने वर्शन का इस्तेमाल करता है, तो अपडेट किए गए मॉड्यूलर आर्किटेक्चर के लिए आपके कोड में कुछ बदलाव करने होंगे. इस सेक्शन में, उनमें से कुछ बदलावों के बारे में बताया गया है.

यात्रा पर नज़र रखना

अपडेट किए गए मॉड्यूलर आर्किटेक्चर में, डेटा-लेयर और यूज़र-इंटरफ़ेस, दोनों के उपयोगकर्ताओं के लिए कोड में बदलाव करने की ज़रूरत होती है.

पुराने वर्शन में, डेटा-लेयर उपयोगकर्ता नीचे दिए गए कोड का इस्तेमाल करके ट्रिप मॉनिटरिंग को हैंडल कर सकता है:

GRCTripRequest *tripRequest =
    [[GRCTripRequest alloc] initWithRequestHeader:[GRSRequestHeader defaultHeader]
                                         tripName:tripName
                          autoRefreshTimeInterval:1];
GRCTripService *tripService = [GRCServices sharedServices].tripService;
[tripService registerServiceSubscriber:self];
[tripService setActiveTripWithRequest:tripRequest];

मॉड्यूलर आर्किटेक्चर का इस्तेमाल करके, डेटा-लेयर उपयोगकर्ता इस कोड का इस्तेमाल करेगा:

GMTCTripService *tripService = [GMTCServices sharedServices].tripService;
GMTCTripModel *tripModel = [tripService tripModelForTripName:tripName];
tripModel.options.autoRefreshTimeInterval = 1;
[tripModel registerSubscriber:self];

पुराने वर्शन में, यूज़र-इंटरफ़ेस इस्तेमाल करने वाला व्यक्ति नीचे दिए गए कोड का इस्तेमाल करके, यात्रा से जुड़ी निगरानी की कार्रवाइयां कर सकता था:

// Show the Journey Sharing user interface.
[self.mapView startTripMonitoring];

// Hide the Journey Sharing user interface.
[self.mapView resetCustomerState];

मॉड्यूलर आर्किटेक्चर का इस्तेमाल करके, यूज़र-इंटरफ़ेस का इस्तेमाल करने वाला इस कोड का इस्तेमाल करेगा:

// Show the Journey Sharing user interface.
GMTCJourneySharingSession *journeySharingSession =
  [[GMTCJourneySharingSession alloc] initWithTripModel:tripModel];
[self.mapView showMapViewSession:journeySharingSession];

// Hide the Journey Sharing user interface.
[self.mapView hideMapViewSession:journeySharingSession];