শ্রোতাদের সেট আপ করুন
ড্রাইভার এসডিকে ইনিশিয়ালাইজ করার এবং একটি GMTDDeliveryDriverAPI ইনস্ট্যান্স তৈরি করার পর, আপনি ফ্লিট ইঞ্জিন এবং আপনার ব্যাকএন্ডে পাঠানো গাড়ির আপডেটের সাফল্য বা ব্যর্থতা নিরীক্ষণের জন্য ইভেন্ট লিসেনার সেট আপ করতে পারেন। এই লিসেনারগুলো আপনার ড্রাইভার অ্যাপের মধ্যে বিভিন্ন অ্যাকশন ট্রিগার করতে পারে, যেমন আপনার ব্যাকএন্ডের সাথে যোগাযোগ ব্যর্থ হলে ড্রাইভারকে অবহিত করা।
গাড়ির আপডেট ইভেন্টগুলির জন্য শুনুন
যখন ড্রাইভার ড্রাইভার অ্যাপে লোকেশন আপডেট চালু করেন, তখন ড্রাইভার SDK, GMTDDeliveryVehicleReporter ক্লাসের মাধ্যমে ফ্লিট ইঞ্জিন এবং কাস্টমার ব্যাকএন্ডে নিয়মিত গাড়ির আপডেট পাঠায়। আপনি GMTDVehicleReporterListener প্রোটোকল সেট আপ করার মাধ্যমে অ্যাপটিকে আপডেট ইভেন্টগুলোতে সাড়া দেওয়ার ব্যবস্থা করতে পারেন।
GMTDVehicleReporterListener ব্যবহার করে আপনি নিম্নলিখিত ইভেন্টগুলি পরিচালনা করতে পারেন:
vehicleReporter:didSucceedVehicleUpdateড্রাইভার অ্যাপকে জানানো হয় যে ব্যাকএন্ড পরিষেবাগুলো গাড়ির অবস্থান ও অবস্থার হালনাগাদ তথ্য সফলভাবে গ্রহণ করেছে।
vehicleReporter:didFailVehicleUpdate:withErrorলিসেনারকে জানায় যে একটি যানবাহন আপডেট ব্যর্থ হয়েছে। যতক্ষণ পর্যন্ত ড্রাইভার লোকেশন আপডেট চালু রাখেন,
GMTDDeliveryVehicleReporterক্লাসটি ফ্লিট ইঞ্জিনে সর্বশেষ ডেটা পাঠাতে থাকে।
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে এই ইভেন্টগুলি পরিচালনা করার জন্য 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.
}
}
উদ্দেশ্য-সি
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 আপডেট পাঠায়।
ড্রাইভার SDK ড্রাইভারের বর্তমান নেভিগেশন পথের সাথে মিলিয়ে রুটটি নির্ধারণ করে। অবস্থানের সঠিক আপডেট নিশ্চিত করতে, Fleet Engine-এর গন্তব্যের সাথে মিলিয়ে -setDestinations:callback: এ ওয়েপয়েন্টটি সেট করুন।
নিচের উদাহরণটি দেখায় কীভাবে অবস্থান আপডেট চালু করতে হয়:
সুইফট
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
}
}
উদ্দেশ্য-সি
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 প্রতি ১০ সেকেন্ড অন্তর ফ্লিট ইঞ্জিনে অবস্থানের আপডেট পাঠায়। আপনি locationUpdateInterval ব্যবহার করে আপডেটের ব্যবধান পরিবর্তন করে সর্বনিম্ন ৫ সেকেন্ড বা সর্বোচ্চ ৬০ সেকেন্ড পর্যন্ত করতে পারেন। এর চেয়ে ঘন ঘন আপডেটের ফলে রিকোয়েস্টের গতি কমে যেতে পারে এবং ত্রুটি দেখা দিতে পারে।