Aracı hazırlayın

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ü, 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 alanını ş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.