Consumer SDK untuk iOS memungkinkan Anda membuat aplikasi Transportasi Online menggunakan arsitektur modular. Anda dapat menggunakan bagian-bagian API yang ingin digunakan untuk aplikasi tertentu, dan mengintegrasikannya dengan API Anda sendiri. Consumer SDK API untuk berbagai fitur dienkapsulasi ke dalam modul terpisah.
Jika aplikasi Transportasi Online menggunakan Consumer SDK versi sebelumnya, Anda harus mengupgrade aplikasi tersebut untuk menggunakan arsitektur modular ini. Panduan migrasi ini menjelaskan cara mengupgrade aplikasi Anda.
Ringkasan
Arsitektur modular Consumer SDK memperkenalkan objek MapViewSession
yang menyimpan status antarmuka pengguna. Pada Consumer SDK versi sebelumnya, aplikasi mengalir di antara status. Dengan arsitektur modular ini, Anda akan membuat objek MapViewSession
dan memiliki opsi untuk menampilkan sesi di peta. Jika tidak ada sesi yang ditampilkan, peta akan menampilkan konten yang sama seperti yang hanya menggunakan Maps SDK for iOS.
Objek MapViewSession
mewakili instance penggunaan siklus proses tunggal dari
modul. Sesi adalah titik akses ke API modul. Misalnya, sesi Berbagi Perjalanan mengikuti satu perjalanan. Anda berinteraksi
dengan objek JourneySharingSession
untuk memantau perjalanan.
Objek TripModel
Pada Consumer SDK versi sebelumnya, instance TripService
hanya memungkinkan Anda memantau satu perjalanan live dalam satu waktu. Dengan menggunakan objek TripModel
,
Anda dapat memantau beberapa perjalanan live dalam satu instance TripService
.
Instance TripModel
dapat dibuat dari TripService
, dan setiap
instance TripModel
terikat ke perjalanan tertentu.
Instance TripModel
memanggil peristiwa update jika pelanggan terdaftar sedang dalam perjalanan ketika diupdate.
Objek TripModel
juga dapat digunakan untuk membuat instance
objek JourneySharingSession
.
MapViewSession
negara bagian
Instance MapViewSession
hanya dapat ditambahkan dalam satu mapView
dalam satu waktu, dan dapat
berada dalam salah satu dari dua status berikut:
Status
GMTCMapViewSessionStateInactive
menunjukkan bahwaMapViewSession
ini belum ditambahkan kemapView
, atau telah dihapus darimapView
. Setelah instanceMapViewSession
dihapus darimapView
, metodedidRemoveFromMapView
dipanggil.Memanggil metode
hideMapViewSession
atauhideAllMapViewSessions
akan menghapusmapViewSession
darimapView
:[_mapView hideMapViewSession:mapViewSessionA];
atau
[_mapView hideAllMapViewSessions];
Status
GMTCMapViewSessionStateActive
menunjukkan bahwaMapViewSession
ini telah ditambahkan kemapView
. Saat instanceMapViewSession
telah ditambahkan kemapView
, metodedidAddToMapView
akan dipanggil. Memanggil metodeshowMapViewSession
akan menambahkanmapViewSession
kemapView
target:[_mapView showMapViewSession:mapViewSessionA];
Menggunakan komponen antarmuka pengguna dan hanya data
Anda dapat membuat aplikasi transportasi online menggunakan komponen khusus data atau API elemen antarmuka pengguna yang disediakan oleh Solusi Perjalanan dan Pengiriman On-demand.
Menggunakan komponen khusus data
Untuk membuat aplikasi transportasi online menggunakan komponen khusus data:
- Lakukan inisialisasi objek
GMTCServices
dengan menentukan ID penyedia dan penyedia token akses. - Dapatkan properti
tripService
dari instance bersama objekGMTCServices
. - Membuat atau mengambil instance objek
GMTCTripModel
untuk perjalanan yang ditentukan menggunakan metodetripModelForTripName
dari objektripService
. - Daftarkan callback untuk instance
GMTCTripModel
guna memulai pemantauan perjalanan.
Contoh berikut menunjukkan cara menggunakan komponen khusus data:
[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];
Menggunakan API elemen UI
Ikuti prosedur berikut untuk membuat aplikasi Konsumen dengan API elemen antarmuka pengguna Solusi Perjalanan dan Pengiriman On-demand:
- Lakukan inisialisasi objek
GMTCServices
dengan menentukan ID penyedia dan penyedia token akses. - Lakukan inisialisasi objek
GMTCMapView
untuk merender peta dasar. - Dapatkan properti
tripService
dari instance bersama objekGMTCServices
. - Membuat atau mengambil instance objek
GMTCTripModel
untuk perjalanan yang ditentukan menggunakan metodetripModelForTripName
dari objektripService
. - Buat objek
GMTCJourneySharingSession
dengan instanceGMTCTripModel
. - Tampilkan objek
GMTCJourneySharingSession
dimapView
. - Daftarkan callback untuk instance
GMTCTripModel
guna memulai pemantauan perjalanan.
Contoh berikut menunjukkan cara menggunakan API antarmuka pengguna:
[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];
Perubahan kode arsitektur modular
Jika aplikasi Transportasi Online Anda menggunakan Consumer SDK versi sebelumnya, arsitektur modular yang diperbarui memerlukan beberapa perubahan pada kode Anda. Bagian ini menjelaskan beberapa perubahan tersebut.
Pemantauan perjalanan
Arsitektur modular yang diperbarui memerlukan perubahan kode untuk pengguna lapisan data dan antarmuka pengguna.
Pada versi sebelumnya, pengguna lapisan data mungkin menangani pemantauan perjalanan menggunakan kode berikut:
GRCTripRequest *tripRequest =
[[GRCTripRequest alloc] initWithRequestHeader:[GRSRequestHeader defaultHeader]
tripName:tripName
autoRefreshTimeInterval:1];
GRCTripService *tripService = [GRCServices sharedServices].tripService;
[tripService registerServiceSubscriber:self];
[tripService setActiveTripWithRequest:tripRequest];
Dengan menggunakan arsitektur modular, pengguna lapisan data akan menggunakan kode berikut:
GMTCTripService *tripService = [GMTCServices sharedServices].tripService;
GMTCTripModel *tripModel = [tripService tripModelForTripName:tripName];
tripModel.options.autoRefreshTimeInterval = 1;
[tripModel registerSubscriber:self];
Pada versi sebelumnya, antarmuka pengguna mungkin menangani pemantauan perjalanan menggunakan kode berikut:
// Show the Journey Sharing user interface.
[self.mapView startTripMonitoring];
// Hide the Journey Sharing user interface.
[self.mapView resetCustomerState];
Dengan menggunakan arsitektur modular, pengguna antarmuka pengguna akan menggunakan kode berikut:
// 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];