Dinleyicileri ayarlama
Driver SDK'sını ilk kullanıma hazırlayın ve bir GMTDDeliveryDriverAPI
örneği oluşturduktan sonra, Fleet Engine'a ve arka uç sunucunuza gönderilen araç güncellemelerinin başarısını veya başarısızlığını izlemek için etkinlik dinleyicileri ayarlayabilirsiniz. Bu dinleyiciler, sürücü uygulamanızda işlemleri tetikleyebilir. Örneğin, arka ucunuzla iletişim kurulamazsa sürücüye bilgi verilebilir.
Araç güncelleme etkinliklerini dinleme
Sürücü, sürücü uygulamasında konum güncellemelerini etkinleştirdiğinde Sürücü SDK'sı, GMTDDeliveryVehicleReporter
sınıfı aracılığıyla Fleet Engine'a ve müşteri arka ucuna düzenli araç güncellemeleri gönderir. GMTDVehicleReporterListener
protokolünü ayarlayarak uygulamanın güncelleme etkinliklerine yanıt vermesini sağlayabilirsiniz.
GMTDVehicleReporterListener
ile aşağıdaki etkinlikleri yönetebilirsiniz:
vehicleReporter:didSucceedVehicleUpdate
Sürücü uygulamasına, arka uç hizmetlerinin araç konumu ve durumu güncellemesini başarıyla aldığını bildirir.
vehicleReporter:didFailVehicleUpdate:withError
Dinleyiciyi bir araç güncellemesinin başarısız olduğu konusunda bilgilendirir. Sürücü konum güncellemelerini etkinleştirdiği sürece
GMTDDeliveryVehicleReporter
sınıfı en son verileri Fleet Engine'a göndermeye devam eder.
Aşağıdaki örnekte, bu etkinlikleri işlemek için GMTDVehicleReporterListener
hizmetinin nasıl ayarlanacağı gösterilmektedir:
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
Konum güncellemelerini etkinleştir
Konum güncellemelerini etkinleştirmek için GMTDDeliveryVehicleReporter
sürücü uygulamasında locationTrackingEnabled
'yi YES
olarak ayarlayın. Ardından GMTDDeliveryVehicleReporter
sınıfı, konum güncellemelerini otomatik olarak Fleet Engine'e gönderir. Ayrıca GMSNavigator
navigasyon modundayken (setDestinations
aracılığıyla bir hedef ayarlandığında) GMTDDeliveryVehicleReporter
sınıfı otomatik olarak rota ve TVS güncellemelerini gönderir.
Sürücü SDK'sı, rotayı sürücünün mevcut navigasyon yoluyla eşleşecek şekilde ayarlar. Doğru konum güncellemeleri sağlamak için -setDestinations:callback:
'teki yol noktasını Fleet Engine'daki hedefle eşleşecek şekilde ayarlayın.
Aşağıdaki örnekte, konum güncellemelerinin nasıl etkinleştirileceği gösterilmektedir:
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
(İsteğe bağlı) Güncelleme aralığını belirleyin
locationTrackingEnabled
değerini YES
olarak ayarladığınızda, Sürücü SDK'sı varsayılan olarak konum güncellemelerini Fleet Engine'e 10 saniyelik aralıklarla gönderir. Güncelleme aralığını locationUpdateInterval
ile en az 5 saniye veya en fazla 60 saniye olarak değiştirebilirsiniz. Daha sık güncelleme yapmak, daha yavaş isteklere ve hatalara neden olabilir.