Siapkan kendaraan

Menyiapkan pemroses

Setelah menginisialisasi Driver SDK dan membuat GMTDDeliveryDriverAPI Anda bisa menyiapkan pemroses peristiwa untuk memantau keberhasilan atau kegagalan mengenai update kendaraan yang dikirim ke Fleet Engine dan backend Anda. Pemroses ini dapat memicu tindakan dalam aplikasi driver, seperti memberi tahu pengemudi jika komunikasi dengan backend Anda gagal.

Memproses peristiwa update kendaraan

Saat pengemudi mengaktifkan pembaruan lokasi di aplikasi pengemudi, Driver SDK akan mengirimkan update kendaraan rutin ke Fleet Engine dan backend pelanggan melalui Class GMTDDeliveryVehicleReporter. Anda dapat meminta aplikasi merespons update dengan menyiapkan protokol GMTDVehicleReporterListener.

Dengan GMTDVehicleReporterListener, Anda dapat menangani peristiwa berikut:

  • vehicleReporter:didSucceedVehicleUpdate

    Memberi tahu aplikasi Driver bahwa layanan backend berhasil menerima lokasi kendaraan dan pembaruan negara bagian.

  • vehicleReporter:didFailVehicleUpdate:withError

    Memberi tahu pemroses bahwa update kendaraan gagal. Selama pengemudi memiliki pembaruan lokasi diaktifkan, class GMTDDeliveryVehicleReporter akan berlanjut untuk mengirim data terbaru ke Fleet Engine.

Contoh berikut menunjukkan cara menyiapkan GMTDVehicleReporterListener untuk menangani peristiwa berikut:

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

Aktifkan pembaruan lokasi

Untuk mengaktifkan pembaruan lokasi, di aplikasi pengemudi di GMTDDeliveryVehicleReporter, tetapkan locationTrackingEnabled ke YES. Kemudian, Class GMTDDeliveryVehicleReporter secara otomatis mengirimkan pembaruan lokasi ke Fleet Engine. Selain itu, saat GMSNavigator berada dalam mode navigasi, yang adalah saat tujuan ditetapkan melalui setDestinations, Class GMTDDeliveryVehicleReporter secara otomatis mengirimkan pembaruan rute dan PWT.

Driver SDK menetapkan rute agar cocok dengan jalur navigasi pengemudi saat ini. Kepada memastikan pembaruan lokasi yang akurat, menetapkan titik jalan dalam -setDestinations:callback: agar cocok dengan tujuan di Fleet Engine.

Contoh berikut menunjukkan cara mengaktifkan pembaruan lokasi:

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

(Opsional) Menetapkan interval update

Secara default, saat Anda menetapkan locationTrackingEnabled ke YES, Driver SDK mengirimkan pembaruan lokasi ke Fleet Engine dalam interval 10 detik. Anda dapat mengubah interval update dengan locationUpdateInterval ke interval update minimum selama 5 detik atau maksimal 60 detik. Pembaruan yang lebih sering dapat menyebabkan permintaan dan error yang lebih lambat.