إعداد المستمعين
بعد بدء حزمة تطوير برامج Driver SDK وإنشاء GMTDDeliveryDriverAPI
مثيل، يمكنك إعداد مستمعي الأحداث لتتبُّع نجاح أو تعذُّر
تعديلات المركبات المُرسَلة إلى Fleet Engine ونظامك الأساسي. يمكن لهذه المستمعِين
تنفيذ إجراءات داخل تطبيق السائق، مثل إرسال إشعار إلى السائق في حال تعطُّل
الاتصال بواجهة الخلفية.
رصد أحداث تحديث المركبات
عندما يفعّل السائق تحديثات الموقع الجغرافي في تطبيق السائق، تُرسِل حزمة تطوير البرامج (SDK) للسائق
تحديثات المركبات العادية إلى Fleet Engine وواجهة العميل الخلفية من خلال فئة
GMTDDeliveryVehicleReporter
. يمكنك جعل التطبيق يستجيب لأحداث التحديث
من خلال إعداد بروتوكول 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
بشكل تلقائي، فإنّ حزمة تطوير البرامج (SDK) لبرنامج التشغيل
يرسل تحديثات الموقع إلى Fleet Engine خلال فاصل مدته 10 ثوانٍ. يمكنك تغيير
فترة التحديث باستخدام locationUpdateInterval
إلى 5 ثوانٍ كحد أدنى أو 60 ثانية كحد أقصى. قد تؤدي التعديلات المتكرّرة إلى
بطء الطلبات وظهور أخطاء.