ה-SDK לצרכן עבור iOS מאפשר ליצור אפליקציות לשיתוף נסיעות באמצעות ארכיטקטורה מודולרית. אתם יכולים להשתמש בחלקים של ה-API שבהם אתם רוצים להשתמש באפליקציה הספציפית שלכם, ולשלב אותם בממשקי API משלכם. ממשקי ה-API של ה-SDK לצרכנים עבור תכונות שונות מחושבים במודולים נפרדים.
אם באפליקציית Ridesharing יש גרסאות קודמות של Consumer SDK, עליך לשדרג את האפליקציה כדי להשתמש בארכיטקטורה המודולרית הזו. במדריך להעברת נתונים מתואר איך לשדרג את האפליקציה.
סקירה כללית
בארכיטקטורה המודולרית של Consumer SDK יש אובייקט MapViewSession
שמכיל את המצב של ממשק המשתמש. בגרסאות הקודמות של Consumer SDK, האפליקציות זרמו בין מצבים. באמצעות הארכיטקטורה המודולרית הזו יוצרים אובייקט MapViewSession
ויש אפשרות להציג את הסשן במפה. אם לא מוצגים סשנים, המפה תציג את אותו תוכן שמופיע רק ב-Maps SDK ל-iOS.
אובייקט MapViewSession
מייצג מופע יחיד של שימוש במחזור החיים של מודול. סשנים הם נקודות הגישה לממשקי ה-API של המודול. לדוגמה,
סשן של שיתוף מסע עוקב אחרי נסיעה אחת. יוצרים אינטראקציה עם האובייקט JourneySharingSession
כדי לעקוב אחר הנסיעה.
אובייקט TripModel
בגרסאות קודמות של Consumer SDK, מכונת TripService
מאפשרת לעקוב אחרי נסיעה פעילה אחת בלבד בכל פעם. בעזרת אובייקט TripModel
אפשר לעקוב אחרי מספר נסיעות בזמן אמת במכונה אחת של TripService
.
אפשר ליצור מכונה של TripModel
מה-TripService
, וכל מופע של ה-TripModel
מקושר לנסיעה ספציפית.
המכונה TripModel
מפעילה אירועי עדכון אם מנוי רשום נמצא בנסיעה אחרי שהוא מתעדכן.
ניתן להשתמש באובייקט TripModel
גם כדי ליצור מכונה של האובייקט JourneySharingSession
.
MapViewSession
מדינות
אפשר להוסיף מכונה של MapViewSession
רק ב-mapView
אחד בכל פעם, והיא יכולה להיות באחד משני המצבים הבאים:
מצב
GMTCMapViewSessionStateInactive
מציין שMapViewSession
הזה עדיין לא נוסף ל-mapView
, או שהוא הוסר מ-mapView
. אחרי שמסירים את המופע שלMapViewSession
מ-mapView
, מתבצעת קריאה ל-methoddidRemoveFromMapView
.קריאה לשיטה
hideMapViewSession
אוhideAllMapViewSessions
מסירה אתmapViewSession
מ-mapView
:[_mapView hideMapViewSession:mapViewSessionA];
או
[_mapView hideAllMapViewSessions];
המצב
GMTCMapViewSessionStateActive
מציין ש-MapViewSession
נוסף ל-mapView
. כשמוסיפים מופע שלMapViewSession
ל-mapView
, מתבצעת קריאה ל-methoddidAddToMapView
. קריאה לשיטהshowMapViewSession
מוסיפה אתmapViewSession
ליעדmapView
:[_mapView showMapViewSession:mapViewSessionA];
שימוש בנתונים בלבד וברכיבי ממשק משתמש
תוכלו ליצור אפליקציה לשיתוף נסיעה באמצעות רכיבי נתונים בלבד או באמצעות ממשקי API של ממשק המשתמש, שמסופקים על ידי הפתרון 'נסיעות ומשלוחים לפי דרישה'.
שימוש ברכיבים לנתונים בלבד
כדי ליצור אפליקציה לשיתוף נסיעות באמצעות רכיבים לנתונים בלבד:
- מפעילים אובייקט
GMTCServices
על ידי ציון מזהה הספק והספק של אסימון הגישה. - משיגים את המאפיין
tripService
מהמופע המשותף של האובייקטGMTCServices
. - יצירה או אחזור של מופע של אובייקט
GMTCTripModel
לנסיעה מסוימת באמצעות השיטהtripModelForTripName
של האובייקטtripService
. - צריך לרשום קריאות חוזרות (callback) למכונה של
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 של רכיבי ממשק המשתמש
כדי ליצור אפליקציה לצרכנים עם ממשקי API של רכיב בממשק המשתמש לפי דרישה, יש לבצע את הפעולות הבאות:
- מפעילים אובייקט
GMTCServices
על ידי ציון מזהה הספק והספק של אסימון הגישה. - יש להפעיל אובייקט
GMTCMapView
כדי לעבד את המפה הבסיסית. - משיגים את המאפיין
tripService
מהמופע המשותף של האובייקטGMTCServices
. - יצירה או אחזור של מופע של אובייקט
GMTCTripModel
לנסיעה מסוימת באמצעות השיטהtripModelForTripName
של האובייקטtripService
. - יוצרים אובייקט
GMTCJourneySharingSession
עם המכונה שלGMTCTripModel
. - הצגת האובייקט
GMTCJourneySharingSession
ב-mapView
. - צריך לרשום קריאות חוזרות (callback) למכונה של
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];