리스너 설정
드라이버 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
의 운전자 앱에서 locationTrackingEnabled
를 YES
로 설정하세요. 그런 다음
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
(선택사항) 업데이트 간격 설정
기본적으로 locationTrackingEnabled
를 YES
로 설정하면 Driver SDK는 10초 간격으로 위치 업데이트를 Fleet Engine에 전송합니다. locationUpdateInterval
를 사용하여 업데이트 간격을 최소 5초 또는 최대 60초로 변경할 수 있습니다. 더 자주 업데이트하면
요청할 수 있습니다