AviasalesSDK 4.0.1

AviasalesSDK 4.0.1

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最后发行版2020年3月

Seva BillevichDmitriy BaklanovVasiliy Yanguzin 维护。



  • Aviasales iOS 团队

Aviasales/Jetradar iOS SDK Core

CocoaPods CocoaPods Travis

示例

例如,您可以使用我们的来自 Aviasales-iOS-SDK 仓库的模板项目。

⚙ 安装

最简单的方法是使用 CocoaPods。它负责所有必需的框架和第三方依赖。

pod 'AviasalesSDK', '~> 4.0.0'

我们推荐在每个使用 SDK 中对象或协议的文件中导入 AviasalesSDK.h

#import <AviasalesSDK/AviasalesSDK.h>

在像这样与 SDK 交互之前,请配置 AviasalesSDK 对象:

AviasalesSDKInitialConfiguration *configuration = [AviasalesSDKInitialConfiguration configurationWithAPIToken:@"Your api token here"
                                                                                                    APILocale:[NSLocale currentLocale].localeIdentifier
                                                                                                partnerMarker:@"Your partner marker here"];
[AviasalesSDK setupWithConfiguration:configuration];

不要忘记将此示例中的两个占位符替换为实际值。

特点

✈️航班票务搜索

请使用JRSDKSearchInfoBuilder对象指定搜索参数。以下是一个示例。

创建搜索信息

创建一个简单的对象,用于描述新的搜索

JRSDKConfigurableSearchInfo *searchInfoBuilder = [[JRSDKSearchInfoBuilder alloc] init];

设置搜索必要参数(adults = 2travelClass = Business 表示两位成人希望乘坐商务舱)

searchInfoBuilder.adults = 2;
searchInfoBuilder.travelClass = JRSDKTravelClassBusiness;

设置旅行日期和机场(使用SDK的机场存储)

JRSDKTravelSegmentBuilder *travelSegmentBuilder = [JRSDKTravelSegmentBuilder new]
travelSegmentBuilder.departureDate = [NSDate date];
travelSegmentBuilder.originAirport = [[AviasalesSDK sharedInstance].airportsStorage findAnythingByIATA:@"LED"];
travelSegmentBuilder.destinationAirport = [[AviasalesSDK sharedInstance].airportsStorage findAnythingByIATA:@"MOW"];

将此旅行段保存到搜索信息中

searchInfoBuilder.travelSegments = [NSOrderedSet orderedSetWithObject:[travelSegmentBuilder build]];

最后,我们可以为后续使用构建一个JRSDKSearchInfo对象

JRSDKSearchInfo *searchInfo = [searchInfoBuilder build];

就到这里。搜索信息已经准备好搜索。

执行搜索请求

要执行搜索请求,请使用从SDK获取的SearchPerformer,并向其发送搜索信息。不要忘记在搜索过程中将此执行者保存到某处。

JRSDKSearchPerformer *searchPerformer = [[AviasalesSDK sharedInstance] createSearchPerformer];

将搜索执行者设置为委托(JRSDKSearchPerformerDelegate)来检索活期和最终搜索结果

searchPerformer.delegate = self;

此委托需要实现两个方法

第一个方法在搜索完成且结果准备好显示时被调用。在其调用后,您可以释放SearchPerformer,因为它不可重用。

- (void)searchPerformer:(JRSDKSearchPerformer *)searchPerformer didFinishSearch:(JRSDKSearchInfo *)searchInfo withResult:(JRSDKSearchResult *)result andMetropolitanResult:(JRSDKSearchResult *)metropolitanResult;

第二个是在搜索过程中出现错误时调用的方法

- (void)searchPerformer:(JRSDKSearchPerformer *)searchPerformer didFailSearchWithError:(NSError *)error;

可选的方法在从服务器接收到新的票务块时调用

- (void)searchPerformer:(JRSDKSearchPerformer *)searchPerformer didFindSomeTickets:(JRSDKSearchResultsChunk *)newTickets inSearchInfo:(JRSDKSearchInfo *)searchInfo temporaryResult:(JRSDKSearchResult *)temporaryResult temporaryMetropolitanResult:(JRSDKSearchResult *)temporaryMetropolitanResult;

开始进行搜索

[searchPerformer performSearchWithSearchInfo:searchInfo];

解析搜索结果

搜索结果作为JRSDKSearchResult对象接收。如果以特定机场作为参数启动搜索,则会发生resultmetropolitanResult 不一样的情况 —— 后者将包含飞往该城市任何机场的机票。

💸购买机票

AviasalesSDKPurchasePerformer 是一个用于执行机票预订的对象。每张机票包含来自不同机构的不同的建议,您应该使用其中一个作为输入参数。使用价格和通过搜索结果返回的 JRSDKSearchResult > JRSDKSearchResultInfo 创建演员。

- (instancetype)initWithPrice:(id <JRSDKPrice>)price
                     searchId:(NSString *)searchId;

生成购买链接

- (void)performWithDelegate:(id <AviasalesSDKPurchasePerformerDelegate>)delegate;

在浏览器中打开通过代理人收到的链接以提供用户购买表单。

SDK提供的其他实用工具

名称 如何检索对象 描述
机场存储 [AviasalesSDK sharedInstance].airportsStorage 通过IATA查找机场,提供机场列表
AviasalesAirportsSearchPerformer [[AviasalesAirportsSearchPerformer alloc] init] 通过字符串查找机场
AviasalesNearestAirportsManager [AviasalesSDK sharedInstance].nearestAirportsManager 查找离当前用户最近的机场
JRSDKModelUtils [JRSDKModelUtils <method name here>] 帮助您使用SDK对象的实用方法