Menyiapkan pemroses
Setelah menginisialisasi Driver SDK dan membuat GMTDDeliveryDriverAPI
Anda bisa menyiapkan pemroses peristiwa untuk memantau keberhasilan atau kegagalan
mengenai update kendaraan yang dikirim ke Fleet Engine dan backend Anda. Pemroses ini dapat
memicu tindakan dalam aplikasi driver, seperti memberi tahu pengemudi jika
komunikasi dengan backend Anda gagal.
Memproses peristiwa update kendaraan
Saat pengemudi mengaktifkan pembaruan lokasi di aplikasi pengemudi, Driver SDK akan mengirimkan
update kendaraan rutin ke Fleet Engine dan backend pelanggan melalui
Class GMTDDeliveryVehicleReporter
. Anda dapat meminta aplikasi merespons update
dengan menyiapkan protokol GMTDVehicleReporterListener
.
Dengan GMTDVehicleReporterListener
, Anda dapat menangani peristiwa berikut:
vehicleReporter:didSucceedVehicleUpdate
Memberi tahu aplikasi Pengemudi bahwa layanan backend berhasil menerima pembaruan status dan lokasi kendaraan.
vehicleReporter:didFailVehicleUpdate:withError
Memberi tahu pemroses bahwa pembaruan kendaraan gagal. Selama pengemudi memiliki pembaruan lokasi diaktifkan, class
GMTDDeliveryVehicleReporter
akan berlanjut untuk mengirim data terbaru ke Fleet Engine.
Contoh berikut menunjukkan cara menyiapkan GMTDVehicleReporterListener
untuk
menangani peristiwa berikut:
Swift
import GoogleRidesharingDriver
private let providerID = "INSERT_YOUR_PROVIDER_ID"
class SampleViewController: UIViewController, GMTDVehicleReporterListener {
private let mapView: GMSMapView
override func viewDidLoad() {
// Assumes you have implemented the sample code up to this step.
deliveryDriverAPI.vehicleReporter.add(self)
}
func vehicleReporter(_ vehicleReporter: GMTDDeliveryVehicleReporter, didSucceed vehicleUpdate: GMTDVehicleUpdate) {
// Handle update succeeded.
}
func vehicleReporter(_ vehicleReporter: GMTDDeliveryVehicleReporter, didFail vehicleUpdate: GMTDVehicleUpdate, withError error: Error) {
// Handle update failed.
}
}
Objective-C
SampleViewController.h
@interface SampleViewController : UIViewController<GMTDVehicleReporterListener>
@end
SampleViewController.m
#import "SampleViewController.h"
#import "SampleAccessTokenProvider.h"
#import <GoogleRidesharingDriver/GoogleRidesharingDriver.h>
static NSString *const PROVIDER_ID = @"INSERT_YOUR_PROVIDER_ID";
@implementation SampleViewController {
GMSMapView *_mapView;
}
- (void)viewDidLoad {
// ASSUMES YOU IMPLEMENTED HAVE THE SAMPLE CODE UP TO THIS STEP.
[delivervehicleReporter addListener:self];
}
- (void)vehicleReporter:(GMTDDeliveryVehicleReporter *)vehicleReporter didSucceedVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate {
// Handle update succeeded.
}
- (void)vehicleReporter:(GMTDDeliveryVehicleReporter *)vehicleReporter didFailVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate withError:(NSError *)error {
// Handle update failed.
}
@end
Aktifkan pembaruan lokasi
Untuk mengaktifkan pembaruan lokasi, di aplikasi pengemudi di
GMTDDeliveryVehicleReporter
, tetapkan locationTrackingEnabled
ke
YES
. Kemudian,
Class GMTDDeliveryVehicleReporter
secara otomatis mengirimkan pembaruan lokasi ke
Fleet Engine. Selain itu, saat GMSNavigator
berada dalam mode navigasi, yang
adalah saat tujuan ditetapkan melalui setDestinations
,
Class GMTDDeliveryVehicleReporter
secara otomatis mengirimkan pembaruan rute dan PWT.
Driver SDK menetapkan rute agar cocok dengan jalur navigasi pengemudi saat ini. Kepada
memastikan pembaruan lokasi yang akurat, menetapkan titik jalan dalam
-setDestinations:callback:
agar cocok dengan tujuan di Fleet Engine.
Contoh berikut menunjukkan cara mengaktifkan pembaruan lokasi:
Swift
import GoogleRidesharingDriver
private let providerID = "INSERT_YOUR_PROVIDER_ID"
class SampleViewController: UIViewController, GMTDVehicleReporterListener {
private let mapView: GMSMapView
override func viewDidLoad() {
// Assumes you have implemented the sample code up to this step.
deliveryDriverAPI.vehicleReporter.locationTrackingEnabled = true
}
}
Objective-C
SampleViewController.m
#import "SampleViewController.h"
#import "SampleAccessTokenProvider.h"
#import <GoogleRidesharingDriver/GoogleRidesharingDriver.h>
static NSString *const PROVIDER_ID = @"INSERT_YOUR_PROVIDER_ID";
@implementation SampleViewController {
GMSMapView *_mapView;
}
- (void)viewDidLoad {
// ASSUMES YOU HAVE IMPLEMENTED THE SAMPLE CODE UP TO THIS STEP.
deliveryDriverAPI.vehicleReporter.locationTrackingEnabled = YES;
}
@end
(Opsional) Menyetel interval pembaruan
Secara default, saat Anda menetapkan locationTrackingEnabled
ke YES
, Driver SDK
mengirimkan pembaruan lokasi ke Fleet Engine dalam interval 10 detik. Anda dapat mengubah
interval pembaruan dengan locationUpdateInterval
menjadi interval pembaruan minimum
5 detik atau maksimum 60 detik. Pembaruan yang lebih sering dapat menyebabkan
permintaan dan error yang lebih lambat.