যানবাহন প্রস্তুত করুন

শ্রোতাদের সেট আপ করুন

ড্রাইভার SDK শুরু করার পরে এবং একটি 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.
  }
}

উদ্দেশ্য-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 ক্লাস স্বয়ংক্রিয়ভাবে রুট এবং ETA আপডেট পাঠায়।

ড্রাইভার SDK ড্রাইভারের বর্তমান নেভিগেশন পথের সাথে মেলে রুট সেট করে। সঠিক অবস্থানের আপডেট নিশ্চিত করতে, ফ্লিট ইঞ্জিনে গন্তব্যের সাথে মেলে -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
  }
}

উদ্দেশ্য-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 10-সেকেন্ডের ব্যবধানে ফ্লিট ইঞ্জিনে অবস্থান আপডেট পাঠায়। আপনি locationUpdateInterval এর সাথে আপডেটের ব্যবধানটি সর্বনিম্ন 5 সেকেন্ড বা সর্বোচ্চ 60 সেকেন্ডের আপডেট ব্যবধানে পরিবর্তন করতে পারেন। আরও ঘন ঘন আপডেটের ফলে ধীর অনুরোধ এবং ত্রুটি হতে পারে।