Aracı hazırlayın

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şlem tetikleyebilir (ör. arka uç uygulamanızla iletişim başarısız olursa sürücüyü bilgilendirme).

Araç güncelleme etkinliklerini dinleme

Sürücü, sürücü uygulamasında konum güncellemelerini etkinleştirdiğinde Driver 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, 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'ün 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ştirme

Konum güncellemelerini etkinleştirmek için GMTDDeliveryVehicleReporter sürücü uygulamasında locationTrackingEnabledYES olarak ayarlayın. Ardından GMTDDeliveryVehicleReporter sınıfı, konum güncellemelerini Fleet Engine'a otomatik olarak gönderir. Ayrıca, GMSNavigator navigasyon modundayken (setDestinations aracılığıyla bir hedef ayarlandığında) GMTDDeliveryVehicleReporter sınıfı, rota ve ETA 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. Doğru konum güncellemelerini 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ı ayarlama

Varsayılan olarak, locationTrackingEnabled değerini YES olarak ayarladığınızda Sürücü SDK'sı, konum güncellemelerini Fleet Engine'a 10 saniyelik aralıklarla gönderir. locationUpdateInterval ile güncelleme aralığını en az 5 saniye veya en fazla 60 saniye olacak şekilde değiştirebilirsiniz. Daha sık güncellemeler, isteklerin daha yavaş yapılmasına ve hatalara neden olabilir.