차량 준비

리스너 설정

드라이버 SDK를 초기화하고 GMTDDeliveryDriverAPI를 만든 후 인스턴스의 성공 또는 실패를 모니터링하도록 이벤트 리스너를 설정할 수 있습니다. 차량 업데이트가 Fleet Engine과 백엔드로 전송됩니다. 이러한 리스너는 백엔드와의 통신이 실패하면 드라이버에게 알리는 등 드라이버 앱 내에서 작업을 트리거할 수 있습니다.

차량 업데이트 이벤트 수신 대기

운전자가 운전자 앱에서 위치 업데이트를 사용 설정하면 Driver SDK는 GMTDDeliveryVehicleReporter 클래스를 통해 Fleet Engine 및 고객 백엔드에 정기적인 차량 업데이트를 전송합니다. GMTDVehicleReporterListener 프로토콜을 설정하여 앱이 업데이트 이벤트에 응답하도록 할 수 있습니다.

GMTDVehicleReporterListener를 사용하면 다음 이벤트를 처리할 수 있습니다.

  • vehicleReporter:didSucceedVehicleUpdate

    백엔드 서비스가 차량 위치 및 상태 업데이트를 수신했음을 Driver 앱에 알립니다.

  • vehicleReporter:didFailVehicleUpdate:withError

    리스너에 차량 업데이트 실패를 알립니다. 드라이버가 위치 업데이트를 사용 설정한 상태인 한 GMTDDeliveryVehicleReporter 클래스는 계속해서 최신 데이터를 Fleet Engine으로 전송합니다.

다음 예는 GMTDVehicleReporterListener를 설정하여 다음을 수행하는 방법을 보여줍니다. 다음과 같이 처리합니다.

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

위치 업데이트 사용 설정

위치 업데이트를 사용 설정하려면 GMTDDeliveryVehicleReporter의 운전자 앱에서 locationTrackingEnabledYES로 설정하세요. 그런 다음 GMTDDeliveryVehicleReporter 수업에서 자동으로 위치 업데이트를 전송합니다. Fleet Engine입니다. 또한 GMSNavigator가 탐색 모드일 때 대상이 setDestinations를 통해 설정된 경우입니다. GMTDDeliveryVehicleReporter 클래스는 경로 및 도착예정시간 업데이트를 자동으로 전송합니다.

Driver SDK는 운전자의 현재 탐색 경로와 일치하도록 경로를 설정합니다. 받는사람 정확한 위치 업데이트를 위해 경유지를 -setDestinations:callback:: Fleet Engine의 대상과 일치합니다.

다음 예는 위치 업데이트를 사용 설정하는 방법을 보여줍니다.

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

(선택사항) 업데이트 간격 설정

기본적으로 locationTrackingEnabledYES로 설정하면 Driver SDK는 10초 간격으로 위치 업데이트를 Fleet Engine에 전송합니다. locationUpdateInterval를 사용하여 업데이트 간격을 최소 5초 또는 최대 60초로 변경할 수 있습니다. 더 자주 업데이트하면 요청할 수 있습니다