Consumer SDK สำหรับ iOS ช่วยให้คุณสร้างแอป Rideshare โดยใช้สถาปัตยกรรมโมดูล คุณสามารถใช้ส่วนต่างๆ ของ API ที่ต้องการ ใช้กับแอปโดยเฉพาะ แล้วผสานรวมกับ API ของคุณเอง Consumer SDK API สำหรับฟีเจอร์ต่างๆ จะรวมอยู่ในโมดูลที่แยกจากกัน
หากแอป Rideshare ของคุณใช้ Consumer SDK เวอร์ชันก่อนหน้า คุณจะต้องอัปเกรดแอปเพื่อใช้สถาปัตยกรรมโมดูลนี้ คำแนะนำในการย้ายข้อมูลนี้จะอธิบายวิธีอัปเกรดแอป
ภาพรวม
สถาปัตยกรรมแบบแยกส่วนสำหรับ Consumer SDK จะใช้ออบเจ็กต์ MapViewSession
ที่คงสถานะอินเทอร์เฟซผู้ใช้ไว้ ใน Consumer SDK เวอร์ชันก่อนหน้า แอปจะส่งไปมาระหว่างสถานะต่างๆ สถาปัตยกรรมโมดูลนี้ช่วยให้คุณสร้างออบเจ็กต์ MapViewSession
และมีตัวเลือกในการแสดงเซสชันในแผนที่ หากไม่มีเซสชันแสดง แผนที่จะแสดงเนื้อหาเหมือนกับการใช้ Maps SDK สำหรับ iOS เท่านั้น
ออบเจ็กต์ MapViewSession
แสดงอินสแตนซ์การใช้งานวงจรเดียวของโมดูล เซสชันคือจุดเข้าถึง API ของโมดูล ตัวอย่างเช่น เซสชันการแชร์เส้นทางการท่องเว็บจะติดตามการเดินทางเที่ยวเดียว คุณโต้ตอบกับออบเจ็กต์ JourneySharingSession
เพื่อตรวจสอบการเดินทาง
วัตถุ TripModel
รายการ
ใน Consumer SDK เวอร์ชันก่อนหน้า อินสแตนซ์ TripService
จะให้คุณตรวจสอบการเดินทางปัจจุบันได้เพียงครั้งละ 1 รายการ การใช้ออบเจ็กต์ TripModel
ทำให้คุณตรวจสอบการเดินทางแบบสดหลายรายการได้ใน TripService
อินสแตนซ์เดียว
อินสแตนซ์ของ TripModel
สร้างได้จาก TripService
และแต่ละอินสแตนซ์ของ TripModel
จะผูกกับทริปที่เฉพาะเจาะจง
กิจกรรมการเรียกอินสแตนซ์ TripModel
หากสมาชิกที่ลงทะเบียนอยู่ในการเดินทางเมื่อมีการอัปเดต
นอกจากนี้ คุณยังใช้ออบเจ็กต์ TripModel
เพื่อสร้างอินสแตนซ์ของออบเจ็กต์ JourneySharingSession
ได้ด้วย
MapViewSession
รัฐ
คุณเพิ่มอินสแตนซ์ MapViewSession
ใน mapView
ได้ครั้งละ 1 รายการเท่านั้น และอาจอยู่ในสถานะใดสถานะหนึ่งจาก 2 สถานะต่อไปนี้
สถานะ
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
- สร้างหรือเรียกข้อมูลอินสแตนซ์ของออบเจ็กต์
GMTCTripModel
สำหรับการเดินทางที่ระบุโดยใช้เมธอดtripModelForTripName
ของออบเจ็กต์tripService
- ลงทะเบียนโค้ดเรียกกลับสำหรับอินสแตนซ์
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 องค์ประกอบอินเทอร์เฟซผู้ใช้ของการโดยสารและการนำส่งแบบออนดีมานด์
- เริ่มต้นออบเจ็กต์
GMTCServices
โดยระบุรหัสผู้ให้บริการและผู้ให้บริการโทเค็นเพื่อการเข้าถึง - เริ่มต้นออบเจ็กต์
GMTCMapView
เพื่อแสดงแผนที่ฐาน - รับพร็อพเพอร์ตี้
tripService
จากอินสแตนซ์ที่แชร์ของออบเจ็กต์GMTCServices
- สร้างหรือเรียกข้อมูลอินสแตนซ์ของออบเจ็กต์
GMTCTripModel
สำหรับการเดินทางที่ระบุโดยใช้เมธอดtripModelForTripName
ของออบเจ็กต์tripService
- สร้างออบเจ็กต์
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];
การเปลี่ยนแปลงโค้ดสถาปัตยกรรมแบบโมดูล
หากแอป Rideshare ของคุณใช้ 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];