Hörer einrichten
Nach dem Initialisieren des Driver SDK und dem Erstellen eines GMTDDeliveryDriverAPI
können Sie Event-Listener einrichten, um den Erfolg oder Misserfolg eines
an Fleet Engine und Ihr Backend gesendet. Diese Hörer können
Aktionen in Ihrer Fahrer-App auslösen, z. B. eine Benachrichtigung des Fahrers,
Kommunikation mit Ihrem Backend schlägt fehl.
Auf Fahrzeug-Update-Ereignisse warten
Wenn der Fahrer Standortaktualisierungen in der Fahrer-App aktiviert, sendet das Driver SDK
regelmäßige Fahrzeugupdates für Fleet Engine und das Kunden-Backend über
Klasse GMTDDeliveryVehicleReporter
. Du kannst festlegen, dass die App auf Updates reagiert.
Ereignisse durch Einrichten des GMTDVehicleReporterListener
-Protokolls.
Mit GMTDVehicleReporterListener
können Sie die folgenden Ereignisse verarbeiten:
vehicleReporter:didSucceedVehicleUpdate
Informiert die Treiber-App, dass die Backend-Dienste den Aktualisierung von Fahrzeugstandort und Fahrzeugstatus.
vehicleReporter:didFailVehicleUpdate:withError
Informiert den Listener, dass ein Fahrzeugupdate fehlgeschlagen ist. Solange der Fahrer Standortaktualisierungen aktiviert, die Klasse
GMTDDeliveryVehicleReporter
wird fortgesetzt um die neuesten Daten an die Fleet Engine zu senden.
Das folgende Beispiel zeigt, wie GMTDVehicleReporterListener
so eingerichtet wird,
diese Ereignisse zu verarbeiten:
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
Standortaktualisierungen aktivieren
Um Standortupdates zu aktivieren, in der Treiber-App auf
GMTDDeliveryVehicleReporter
, locationTrackingEnabled
festlegen auf
YES
Dann
GMTDDeliveryVehicleReporter
-Kurs sendet automatisch Standortaktualisierungen an
Fleet Engine Wenn sich der GMSNavigator
im Navigationsmodus befindet, was
wenn ein Ziel über setDestinations
festgelegt wird, gilt der
Die Klasse „GMTDDeliveryVehicleReporter
“ sendet automatisch Routeninformationen und voraussichtliche Ankunftszeiten.
Das Driver SDK legt die Route so fest, dass sie dem aktuellen Navigationspfad des Fahrers entspricht. Bis
korrekte Standortupdates zu erhalten, den Wegpunkt in der
-setDestinations:callback:
, um das Ziel in Fleet Engine abzugleichen.
Das folgende Beispiel zeigt, wie Standortaktualisierungen aktiviert werden:
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
(Optional) Aktualisierungsintervall festlegen
Wenn Sie locationTrackingEnabled
auf YES
setzen, wird das Driver SDK standardmäßig
sendet Standortaktualisierungen in Intervallen von 10 Sekunden an Fleet Engine. Sie können
Aktualisierungsintervall mit locationUpdateInterval
auf ein minimales Aktualisierungsintervall
5 oder maximal 60 Sekunden. Häufigere Aktualisierungen können zu
langsamere Anfragen und Fehler.