Thiết lập trình nghe
Sau khi khởi chạy SDK Trình điều khiển và tạo một thực thể GMTDDeliveryDriverAPI
, bạn có thể thiết lập trình nghe sự kiện để theo dõi việc cập nhật xe thành công hay không thành công được gửi đến Công cụ quản lý đội xe và phần phụ trợ của bạn. Các trình nghe này có thể kích hoạt các hành động trong ứng dụng trình điều khiển, chẳng hạn như thông báo cho trình điều khiển nếu không giao tiếp được với phần phụ trợ.
Theo dõi các sự kiện cập nhật xe
Khi người lái xe bật tính năng cập nhật vị trí trong ứng dụng dành cho người lái xe, SDK dành cho người lái xe sẽ gửi thông tin cập nhật thường xuyên về xe đến Công cụ quản lý đội xe và phần phụ trợ của khách hàng thông qua lớp GMTDDeliveryVehicleReporter
. Bạn có thể yêu cầu ứng dụng phản hồi các sự kiện cập nhật bằng cách thiết lập giao thức GMTDVehicleReporterListener
.
Với GMTDVehicleReporterListener
, bạn có thể xử lý các sự kiện sau:
vehicleReporter:didSucceedVehicleUpdate
Thông báo cho ứng dụng Trình điều khiển rằng các dịch vụ phụ trợ đã nhận được thành công thông tin cập nhật về vị trí và trạng thái của xe.
vehicleReporter:didFailVehicleUpdate:withError
Thông báo cho trình nghe rằng không cập nhật được xe. Miễn là trình điều khiển bật tính năng cập nhật vị trí, lớp
GMTDDeliveryVehicleReporter
sẽ tiếp tục gửi dữ liệu mới nhất đến Công cụ của đội xe.
Ví dụ sau đây cho thấy cách thiết lập GMTDVehicleReporterListener
để xử lý các sự kiện này:
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
Bật thông báo cập nhật vị trí
Để bật tính năng cập nhật vị trí, trong ứng dụng trình điều khiển trên GMTDDeliveryVehicleReporter
, hãy đặt locationTrackingEnabled
thành YES
. Sau đó, lớp GMTDDeliveryVehicleReporter
sẽ tự động gửi thông tin cập nhật vị trí đến Công cụ quản lý đội xe. Ngoài ra, khi GMSNavigator
ở chế độ điều hướng, tức là khi một đích đến được đặt thông qua setDestinations
, lớp GMTDDeliveryVehicleReporter
sẽ tự động gửi thông tin cập nhật về tuyến đường và ETA.
SDK Trình điều khiển đặt tuyến đường sao cho khớp với đường dẫn điều hướng hiện tại của trình điều khiển. Để đảm bảo thông tin cập nhật vị trí chính xác, hãy đặt điểm trung gian trong -setDestinations:callback:
sao cho khớp với đích đến trong Công cụ quản lý đội xe.
Ví dụ sau đây cho thấy cách bật thông tin cập nhật vị trí:
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
(Không bắt buộc) Đặt khoảng thời gian cập nhật
Theo mặc định, khi bạn đặt locationTrackingEnabled
thành YES
, SDK Trình điều khiển sẽ gửi thông tin cập nhật vị trí đến Công cụ của đội xe theo khoảng thời gian 10 giây. Bạn có thể thay đổi khoảng thời gian cập nhật bằng locationUpdateInterval
thành khoảng thời gian cập nhật tối thiểu là 5 giây hoặc tối đa là 60 giây. Việc cập nhật thường xuyên hơn có thể dẫn đến các yêu cầu chậm hơn và lỗi.