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];
सिर्फ़ डेटा वाले और यूज़र इंटरफ़ेस कॉम्पोनेंट का इस्तेमाल करना
सिर्फ़ डेटा वाले कॉम्पोनेंट या 'मांग पर राइड और डिलीवरी सलूशन' से मिले यूज़र इंटरफ़ेस एलिमेंट एपीआई का इस्तेमाल करके, राइडशेयरिंग ऐप्लिकेशन बनाया जा सकता है.
सिर्फ़ डेटा वाले कॉम्पोनेंट का इस्तेमाल करना
सिर्फ़ डेटा वाले कॉम्पोनेंट का इस्तेमाल करके राइडशेयरिंग ऐप्लिकेशन बनाने के लिए:
- सेवा देने वाली कंपनी का आईडी और ऐक्सेस टोकन देने वाली कंपनी की जानकारी देकर,
GMTCServices
ऑब्जेक्ट को शुरू करें. GMTCServices
ऑब्जेक्ट के शेयर किए गए इंस्टेंस से,tripService
प्रॉपर्टी पाएं.- किसी खास यात्रा के लिए,
tripService
ऑब्जेक्ट केtripModelForTripName
तरीके का इस्तेमाल करके,GMTCTripModel
ऑब्जेक्ट का इंस्टेंस बनाएं या फिर से पाएं. - यात्रा की निगरानी शुरू करने के लिए,
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];
यूज़र इंटरफ़ेस (यूआई) एलिमेंट के एपीआई इस्तेमाल करना
'मांग पर राइड और डिलीवरी समाधान' के यूज़र इंटरफ़ेस एलिमेंट एपीआई की मदद से उपभोक्ता ऐप्लिकेशन बनाने के लिए, यह तरीका अपनाएं:
- सेवा देने वाली कंपनी का आईडी और ऐक्सेस टोकन देने वाली कंपनी की जानकारी देकर,
GMTCServices
ऑब्जेक्ट को शुरू करें. - बेस मैप को रेंडर करने के लिए,
GMTCMapView
ऑब्जेक्ट शुरू करें. GMTCServices
ऑब्जेक्ट के शेयर किए गए इंस्टेंस से,tripService
प्रॉपर्टी पाएं.- किसी खास यात्रा के लिए,
tripService
ऑब्जेक्ट केtripModelForTripName
तरीके का इस्तेमाल करके,GMTCTripModel
ऑब्जेक्ट का इंस्टेंस बनाएं या फिर से पाएं. GMTCTripModel
इंस्टेंस के साथ एकGMTCJourneySharingSession
ऑब्जेक्ट बनाएं.mapView
परGMTCJourneySharingSession
ऑब्जेक्ट दिखाएं.- यात्रा की निगरानी शुरू करने के लिए,
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];