iOS için Tüketici SDK'sı, modüler bir mimari kullanarak Ridesharing uygulamaları oluşturmanıza olanak tanır. Uygulamanız için kullanmak istediğiniz API'nin parçalarını kullanabilir ve kendi API'lerinizle entegre edebilirsiniz. Farklı özelliklere yönelik Tüketici SDK'sı API'leri ayrı modüller içinde kapsüllenir.
Ridesharing uygulamanız Tüketici SDK'sının önceki sürümlerini kullanıyorsa bu modüler mimariyi kullanmak için uygulamanızı yükseltmeniz gerekir. Bu taşıma rehberinde, uygulamanızı nasıl yeni sürüme geçireceğiniz açıklanmaktadır.
Genel bakış
Tüketici SDK'sı modüler mimarisi, kullanıcı arayüzü durumunu barındıran bir MapViewSession
nesnesi sunar. Tüketici SDK'sının önceki sürümlerinde uygulamalar eyaletler arasında geçiş yapıyordu. Bu modüler mimariyle bir MapViewSession
nesnesi oluşturur ve oturumu harita üzerinde görüntüleme seçeneğine sahip olursunuz. Hiç oturum gösterilmiyorsa harita, yalnızca iOS için Haritalar SDK'sını kullanan içerikle aynı içeriği gösterir.
MapViewSession
nesnesi, bir modülün tek bir yaşam döngüsü kullanım örneğini temsil eder. Oturumlar, modül API'lerine erişim noktalarıdır. Örneğin, bir Yolculuk Paylaşımı oturumu tek bir geziyi izler. Geziyi izlemek için JourneySharingSession
nesnesiyle etkileşimde bulunursunuz.
TripModel
nesne
Tüketici SDK'sının önceki sürümlerinde TripService
örneği, aynı anda yalnızca bir canlı geziyi izlemenize imkan tanır. TripModel
nesnesi kullanarak tek bir TripService
örneğinde birden fazla canlı geziyi izleyebilirsiniz.
TripService
üzerinden TripModel
örneği oluşturulabilir ve TripModel
öğesinin her örneği belirli bir geziye bağlanır.
Güncellendiğinde kayıtlı bir abone geçişteyse TripModel
örneği, güncelleme etkinliklerini çağırır.
TripModel
nesnesi, JourneySharingSession
nesnesinin bir örneğini oluşturmak için de kullanılabilir.
MapViewSession
eyalet
Bir MapViewSession
örneği, tek seferde yalnızca bir mapView
için eklenebilir ve aşağıdaki iki durumdan birinde olabilir:
GMTCMapViewSessionStateInactive
durumu, buMapViewSession
öğesinin henüz herhangi birmapView
öğesine eklenmemiş olduğunu veya birmapView
öğesinden kaldırıldığını belirtir.MapViewSession
örneği birmapView
öğesinden kaldırıldığındadidRemoveFromMapView
yöntemi çağrılır.hideMapViewSession
veyahideAllMapViewSessions
yöntemi çağrıldığında,mapViewSession
öğesi birmapView
öğesinden kaldırılır:[_mapView hideMapViewSession:mapViewSessionA];
veya
[_mapView hideAllMapViewSessions];
GMTCMapViewSessionStateActive
durumu, buMapViewSession
öğesinin birmapView
öğesine eklendiğini gösterir.MapViewSession
öğesinin bir örneğimapView
öğesine eklendiğindedidAddToMapView
yöntemi çağrılır.showMapViewSession
yöntemi çağrıldığında,mapViewSession
hedefinemapView
eklenir:[_mapView showMapViewSession:mapViewSessionA];
Yalnızca veri ve kullanıcı arayüzü bileşenlerini kullanma
Yalnızca veri içeren bileşenleri veya İsteğe Bağlı Yolculuk ve Teslimat Çözümü tarafından sağlanan kullanıcı arayüzü öğesi API'lerini kullanarak araç paylaşma uygulaması oluşturabilirsiniz.
Yalnızca veri bileşenlerini kullanma
Yalnızca veri bileşenleri kullanarak araç paylaşma uygulaması oluşturmak için:
- Sağlayıcı kimliğini ve erişim jetonu sağlayıcısını belirterek bir
GMTCServices
nesnesini başlatın. GMTCServices
nesnesinin paylaşılan örneğindentripService
özelliğini alın.tripService
nesnesinintripModelForTripName
yöntemini kullanarak belirli bir gezi içinGMTCTripModel
nesnesinin örneğini oluşturun veya alın.- Gezi izlemeyi başlatmak amacıyla
GMTCTripModel
örneği için geri çağırmaları kaydedin.
Aşağıdaki örnekte yalnızca veri bileşenlerinin nasıl kullanılacağı gösterilmektedir:
[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];
Kullanıcı arayüzü öğesi API'lerini kullanma
İsteğe Bağlı Yolculuk ve Teslimat Çözümü kullanıcı arayüzü öğesi API'lerine sahip bir Tüketici uygulaması oluşturmak için şu prosedürü uygulayın:
- Sağlayıcı kimliğini ve erişim jetonu sağlayıcısını belirterek bir
GMTCServices
nesnesini başlatın. - Temel haritayı oluşturmak için bir
GMTCMapView
nesnesini başlatın. GMTCServices
nesnesinin paylaşılan örneğindentripService
özelliğini alın.tripService
nesnesinintripModelForTripName
yöntemini kullanarak belirli bir gezi içinGMTCTripModel
nesnesinin örneğini oluşturun veya alın.GMTCTripModel
örneğiyle birGMTCJourneySharingSession
nesnesi oluşturun.mapView
üzerindeGMTCJourneySharingSession
nesnesini göster.- Gezi izlemeyi başlatmak amacıyla
GMTCTripModel
örneği için geri çağırmaları kaydedin.
Aşağıdaki örnekte, kullanıcı arayüzü API'lerinin nasıl kullanılacağı gösterilmektedir:
[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];
Modüler mimari kod değişiklikleri
Ridesharing uygulamanız Tüketici SDK'sının önceki sürümlerini kullanıyorsa güncellenmiş modüler mimari için kodunuzda bazı değişiklikler yapmanız gerekir. Bu bölümde söz konusu değişikliklerden bazıları açıklanmaktadır.
Gezi izleme
Güncellenen modüler mimari, hem veri katmanı hem de kullanıcı arayüzü kullanıcıları için kod değişikliği gerektirir.
Önceki sürümlerde, veri katmanı kullanıcısı aşağıdaki kodu kullanarak gezi izlemeyi halledebilirdi:
GRCTripRequest *tripRequest =
[[GRCTripRequest alloc] initWithRequestHeader:[GRSRequestHeader defaultHeader]
tripName:tripName
autoRefreshTimeInterval:1];
GRCTripService *tripService = [GRCServices sharedServices].tripService;
[tripService registerServiceSubscriber:self];
[tripService setActiveTripWithRequest:tripRequest];
Bir veri katmanı kullanıcısı modüler mimariden şu kodu kullanır:
GMTCTripService *tripService = [GMTCServices sharedServices].tripService;
GMTCTripModel *tripModel = [tripService tripModelForTripName:tripName];
tripModel.options.autoRefreshTimeInterval = 1;
[tripModel registerSubscriber:self];
Önceki sürümlerde, kullanıcı arayüzü kullanıcısı aşağıdaki kodu kullanarak gezi izlemeyi gerçekleştirebiliyordu:
// Show the Journey Sharing user interface.
[self.mapView startTripMonitoring];
// Hide the Journey Sharing user interface.
[self.mapView resetCustomerState];
Modüler mimariyi kullanan bir kullanıcı arayüzü kullanıcısı aşağıdaki kodu kullanır:
// 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];