리스너 설정
드라이버 SDK를 초기화하고 GMTDDeliveryDriverAPI
를 만든 후
인스턴스의 성공 또는 실패를 모니터링하도록 이벤트 리스너를 설정할 수 있습니다.
차량 업데이트가 Fleet Engine과 백엔드로 전송됩니다. 이러한 리스너는
작업을 실행할 수 있습니다.
통신할 수 없습니다
차량 업데이트 이벤트 수신 대기
운전자가 드라이버 앱에서 위치 업데이트를 활성화하면 Driver SDK는
정기적으로 업데이트되는
GMTDDeliveryVehicleReporter
클래스. 앱이 업데이트에 응답하도록 설정할 수 있습니다
GMTDVehicleReporterListener
프로토콜을 설정하여 이벤트를 수신할 수 있습니다.
GMTDVehicleReporterListener
를 사용하면 다음 이벤트를 처리할 수 있습니다.
vehicleReporter:didSucceedVehicleUpdate
드라이버 앱에 백엔드 서비스가 차량 위치 및 상태 업데이트.
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
수업에서 자동으로 위치 업데이트를 전송합니다.
사용할 수 있습니다 또한 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
의 업데이트 간격을 최소 업데이트 간격으로
지정할 수 있습니다 더 자주 업데이트하면
요청할 수 있습니다