شنوندگان را تنظیم کنید
پس از مقداردهی اولیه Driver SDK و ایجاد یک نمونه GMTDDeliveryDriverAPI
، میتوانید شنوندگان رویداد را برای نظارت بر موفقیت یا شکست بهروزرسانیهای خودرو ارسال شده به Fleet Engine و باطن خود تنظیم کنید. این شنوندهها میتوانند اقداماتی را در برنامه درایور شما انجام دهند، مانند اطلاع دادن به راننده در صورت عدم موفقیت در ارتباط با باطن شما.
به رویدادهای به روز رسانی خودرو گوش دهید
هنگامی که راننده بهروزرسانیهای مکان را در برنامه راننده فعال میکند، Driver SDK بهروزرسانیهای منظم خودرو را از طریق کلاس GMTDDeliveryVehicleReporter
به Fleet Engine و پشتیبانی مشتری ارسال میکند. میتوانید با راهاندازی پروتکل GMTDVehicleReporterListener
، برنامه را به رویدادهای بهروزرسانی پاسخ دهید.
با GMTDVehicleReporterListener
، می توانید رویدادهای زیر را مدیریت کنید:
vehicleReporter:didSucceedVehicleUpdate
به برنامه Driver اطلاع می دهد که سرویس های پشتیبان با موفقیت موقعیت خودرو و به روز رسانی وضعیت را دریافت کردند.
vehicleReporter:didFailVehicleUpdate:withError
به شنونده اطلاع می دهد که به روز رسانی خودرو ناموفق است. تا زمانی که درایور بهروزرسانیهای مکان را فعال کرده باشد، کلاس
GMTDDeliveryVehicleReporter
به ارسال آخرین دادهها به Fleet Engine ادامه میدهد.
مثال زیر نحوه تنظیم GMTDVehicleReporterListener
را برای مدیریت این رویدادها نشان می دهد:
سویفت
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.
}
}
هدف-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
بهطور خودکار بهروزرسانیهای مسیر و ETA را ارسال میکند.
Driver SDK مسیر را طوری تنظیم می کند که با مسیر ناوبری فعلی راننده مطابقت داشته باشد. برای اطمینان از بهروزرسانیهای دقیق مکان، نقطه راه را در -setDestinations:callback:
تنظیم کنید تا با مقصد در Fleet Engine مطابقت داشته باشد.
مثال زیر نحوه فعال کردن به روز رسانی مکان را نشان می دهد:
سویفت
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
}
}
هدف-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 ثانیه تغییر دهید. بهروزرسانیهای مکرر ممکن است منجر به درخواستها و خطاهای کندتر شود.