Dinleyicileri ayarlama
Driver SDK'sını başlattıktan ve bir GMTDDeliveryDriverAPI
oluşturduktan sonra
kullanarak, projenizin başarısını veya başarısızlığını izlemek için etkinlik işleyiciler
Fleet Engine'e ve arka ucunuza gönderilen araç güncellemeleri hakkında bilgi edinebilirsiniz. Bu dinleyiciler
Sürücü uygulamanızda, aşağıdaki durumlarda sürücüye bilgi vermek gibi
kurulmayabilir.
Araç güncelleme etkinliklerini dinle
Sürücü, sürücü uygulamasında konum güncellemelerini etkinleştirdiğinde Sürücü SDK'sı
Fleet Engine'e ve müşteri arka ucuna düzenli olarak yeni araç
GMTDDeliveryVehicleReporter
sınıf. Uygulamanın, güncelleme işlemi için yanıt vermesini sağlayabilirsiniz
etkinlikleri için GMTDVehicleReporterListener
protokolünü kullanabilirsiniz.
GMTDVehicleReporterListener
ile aşağıdaki etkinlikleri yönetebilirsiniz:
vehicleReporter:didSucceedVehicleUpdate
Sürücü uygulamasına, arka uç hizmetlerinin araç konumu ve durumu güncellemesi.
vehicleReporter:didFailVehicleUpdate:withError
Dinleyiciyi bir araç güncellemesinin başarısız olduğu konusunda bilgilendirir. Sürücü de bu süre boyunca konum güncellemeleri etkinleştirildi,
GMTDDeliveryVehicleReporter
sınıfı devam ediyor en son verileri Fleet Engine'e gönderecek.
Aşağıdaki örnekte, GMTDVehicleReporterListener
ayarının nasıl kurulacağı gösterilmektedir
şu etkinlikleri işle:
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
, locationTrackingEnabled
değerini şuna ayarla:
YES
. Ardından
GMTDDeliveryVehicleReporter
sınıfı, konum güncellemelerini otomatik olarak şu adrese gönderir:
Filo Motoru. Buna ek olarak, GMSNavigator
gezinme modundayken
setDestinations
üzerinden bir hedef belirlendiğinde
GMTDDeliveryVehicleReporter
sınıfı, rota ve TVS güncellemelerini otomatik olarak gönderir.
Sürücü SDK'sı, rotayı sürücünün mevcut navigasyon yoluyla eşleşecek şekilde ayarlar. Alıcı:
doğru konum güncellemeleri sağlamak, ara noktayı
Fleet Engine'deki hedefle eşleştirmek için -setDestinations:callback:
.
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
Fleet Engine'e 10 saniyelik aralıklarla konum güncellemeleri gönderir. Şunları değiştirebilirsiniz:
locationUpdateInterval
ile minimum güncelleme aralığına uygun bir güncelleme aralığı
5 saniye veya en fazla 60 saniye uzunluğunda olabilir. Güncellemelerin daha sık yapılması
daha yavaş istekler ve hatalar.