Consumer SDK برای iOS به شما امکان می دهد با استفاده از معماری ماژولار برنامه های Ridesharing ایجاد کنید. می توانید از بخش هایی از API که می خواهید برای برنامه خاص خود استفاده کنید، استفاده کنید و آنها را با API های خود ادغام کنید. API های Consumer SDK برای ویژگی های مختلف در ماژول های جداگانه کپسوله شده اند.
اگر برنامه Ridesharing شما از نسخه های قبلی Consumer SDK استفاده می کند، برای استفاده از این معماری مدولار باید برنامه خود را ارتقا دهید. این راهنمای مهاجرت نحوه ارتقاء برنامه خود را شرح می دهد.
بررسی اجمالی
معماری مدولار Consumer SDK یک شی MapViewSession
را معرفی می کند که حالت رابط کاربری را نگه می دارد. در نسخههای قبلی Consumer SDK، برنامهها بین ایالتها جریان داشتند. با این معماری ماژولار، یک شی MapViewSession
ایجاد میکنید و میتوانید جلسه را روی نقشه نمایش دهید. اگر هیچ جلسه ای نشان داده نشود، نقشه همان محتوایی را نشان می دهد که فقط از Maps SDK برای iOS استفاده می کند.
یک شی MapViewSession
یک نمونه استفاده از چرخه حیات یک ماژول را نشان می دهد. Session ها نقاط دسترسی به API های ماژول هستند. به عنوان مثال، یک جلسه اشتراک گذاری سفر به دنبال یک سفر منفرد انجام می شود. شما برای نظارت بر سفر با شی JourneySharingSession
تعامل دارید.
شی TripModel
در نسخههای قبلی Consumer SDK، یک نمونه TripService
به شما امکان میدهد هر بار فقط یک سفر زنده را نظارت کنید. با استفاده از یک شی TripModel
، می توانید چندین سفر زنده را در یک نمونه TripService
نظارت کنید. یک نمونه از TripModel
را می توان از TripService
ایجاد کرد و هر نمونه از TripModel
به یک سفر خاص محدود می شود.
نمونه TripModel
در صورت بهروزرسانی، رویدادهای بهروزرسانی را فراخوانی میکند، اگر مشترک ثبتشده در سفر باشد.
شی TripModel
همچنین می تواند برای ایجاد یک نمونه از شی JourneySharingSession
استفاده شود.
وضعیت MapViewSession
یک نمونه MapViewSession
را می توان در یک زمان تنها در یک mapView
اضافه کرد و می تواند در یکی از دو حالت زیر باشد:
وضعیت
GMTCMapViewSessionStateInactive
نشان می دهد که اینMapViewSession
یا هنوز به هیچ یک ازmapView
اضافه نشده است یا اینکه از یکmapView
حذف شده است. هنگامی که نمونهMapViewSession
از یکmapView
حذف شد، متدdidRemoveFromMapView
فراخوانی می شود.فراخوانی روش
hideMapViewSession
یاhideAllMapViewSessions
،mapViewSession
ازmapView
حذف میکند:[_mapView hideMapViewSession:mapViewSessionA];
یا
[_mapView hideAllMapViewSessions];
وضعیت
GMTCMapViewSessionStateActive
نشان می دهد که اینMapViewSession
به یکmapView
اضافه شده است. وقتی نمونه ای ازMapViewSession
بهmapView
اضافه شد، متدdidAddToMapView
فراخوانی می شود. فراخوانی متدshowMapViewSession
mapViewSession
بهmapView
هدف اضافه می کند:[_mapView showMapViewSession:mapViewSessionA];
استفاده از اجزای فقط داده و رابط کاربری
میتوانید یک برنامه اشتراکگذاری سواری با استفاده از مؤلفههای فقط داده یا APIهای عنصر رابط کاربری ارائه شده توسط راهحل سواری و تحویل سفارشی ایجاد کنید.
استفاده از اجزای فقط داده
برای ایجاد یک برنامه اشتراک گذاری سواری با استفاده از مؤلفه های فقط داده:
- با مشخص کردن شناسه ارائه دهنده و ارائه دهنده رمز دسترسی، یک شی
GMTCServices
را راه اندازی کنید. - ویژگی
tripService
را از نمونه مشترک شیGMTCServices
دریافت کنید. - با استفاده از روش
tripModelForTripName
شیtripService
یک نمونه از یک شی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];
با استفاده از API های عنصر UI
این روش را دنبال کنید تا یک برنامه مصرف کننده با APIهای عنصر رابط کاربری Rides و Deliveries Solution بر حسب تقاضا ایجاد کنید:
- با مشخص کردن شناسه ارائه دهنده و ارائه دهنده رمز دسترسی، یک شی
GMTCServices
را راه اندازی کنید. - یک شی
GMTCMapView
را برای رندر کردن نقشه پایه راه اندازی کنید. - ویژگی
tripService
را از نمونه مشترک شیGMTCServices
دریافت کنید. - با استفاده از روش
tripModelForTripName
شیtripService
یک نمونه از یک شیGMTCTripModel
را برای یک سفر مشخص ایجاد یا بازیابی کنید. - یک شی
GMTCJourneySharingSession
با نمونهGMTCTripModel
ایجاد کنید. - شیء
GMTCJourneySharingSession
را درmapView
نشان دهید. - برای شروع نظارت بر سفر، تماسهای برگشتی را برای نمونه
GMTCTripModel
ثبت کنید.
مثال زیر نحوه استفاده از API های رابط کاربری را نشان می دهد:
[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];
کد معماری مدولار تغییر می کند
اگر برنامه Ridesharing شما از نسخههای قبلی 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];