Lyft iOS SDK
官方 Lyft iOS SDK 使将 Lyft 集成到您的应用程序变得简单。更具体地说,它提供以下功能:
- 一个易于配置的 Lyft 按钮,可以显示费用、预计到达时间(ETA)和行程类型。点击按钮可深度链接到 Lyft 应用程序,并填充预定的上车/目的地/行程类型。
- 用于异步调用 Lyft REST API 的 Swift 界面
- 一个示例 iOS 项目,展示如何使用 SDK 组件
注册
- 您必须首先在此处创建一个 Lyft 开发者账户 这里。
- 注册后,您将被分配一个客户端 ID,并能够生成客户端令牌。
安装
嵌入式框架需要至少 iOS 8 或 OS X Mavericks(10.9)的最低部署目标。
CocoaPods
CocoaPods 是 Cocoa 项目的依赖管理器。您可以使用以下命令安装它
$ gem install cocoapods
构建 LyftSDK 需要使用 CocoaPods 0.39.0+
要使用 CocoaPods 将 LyftSDK 集成到 Xcode 项目中,请在您的 Podfile
中指定它
platform :ios, '8.0'
use_frameworks!
pod 'LyftSDK'
然后,运行以下命令
$ pod install
无 iOS 特定 UI 元素安装
pod 'LyftSDK/API'
Carthage
Carthage 是 Cocoa 的简单、去中心化的依赖管理器。要导入此 SDK,请在您的 Cartfile 中添加以下内容
github "lyft/Lyft-iOS-sdk"
无依赖管理器集成
将 LyftSDK.xcodeproj 项目拖到您的项目导航器中。在项目构建目标中,点击“通用”选项卡,然后在“嵌入的库”下点击加号按钮。选择您的项目下的 LyftSDK.framework。
使用
SDK 配置
在您的应用中,在使用 LyftSDK 之前,请确保使用 LyftConfiguration
配置您的 开发者信息。这最好在您的 UIApplicationDelegate
的 applicationDidFinishLaunchingWithOptions
方法中完成,如下所示
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
LyftConfiguration.developer = (token: "...", clientId: "...")
// Complete other setup
return true
}
Lyft 按钮
将 Lyft 按钮添加到 Storyboard 或 xib 与添加一个新的 UIView 到 superview 相同,只需在“Identity Inspector”选项卡中将类设置为 LyftButton
。我们建议将宽度设置为 260p,将高度设置为 50p。请注意,较窄的宽度/高度可能会导致不希望的 UI,例如文本截断。
要使用其首选尺寸程序化创建按钮,只需调用 let lyftButton = LyftButton()
加载 ETA/cost
let pickup = CLLocationCoordinate2D(latitude: 37.7833, longitude: -122.4167)
let destination = CLLocationCoordinate2D(latitude: 37.7794703, longitude: -122.4233223)
lyftButton.configure(pickup: pickup, destination: destination)
自驾车型
Lyft 发展非常迅速,目前在这些城市提供服务 (此处省略链接)。请注意,一些自驾车型(如 Lyft Line)在所有 Lyft 城市中尚不可用。如果您设置了按钮的自驾车类型,该类型可能不可用,按钮将默认使用 Lyft Classic 自驾车类型。您可以使用 LyftAPI.rideTypes(at:completion:)
包装器获取特定地区的可用自驾车型。
深度链接行为
当用户点击 Lyft 按钮,默认行为是使用您提供的配置信息深度链接到原生 Lyft 应用。
但是,如果您想使用 Lyft 的移动网页体验在 Lyft 上创建行程请求,您可以将按钮的 deepLinkBehavior
指定如下
lyftButton.deepLinkBehavior = .web
这更适合您不想让用户在制作行程请求时离开您的应用程序。此外,它不需要用户安装 Lyft。
按钮样式
要指定按钮样式,使用 enum LyftButtonStyle
lyftButton.style = .MulberryDark
有5种风格可供选择
Lyft API Wrapper
该SDK提供了围绕Lyft的REST API的包装方法 - 这在您希望构建一个更定制的与Lyft平台的集成时非常有用,而不是直接进行HTTP请求。
let pickup = CLLocationCoordinate2D(latitude: 37.7833, longitude: -122.4167)
LyftAPI.ETAs(to: pickup) { result in
result.value?.forEach { eta in
print("ETA for \(eta.rideKind): \(eta.minutes) min")
}
}
Deeplinking
该SDK为那些喜欢自己处理自定义deeplinking的开发者提供了直接连接到Lyft应用的deeplinking,而不是依赖Lyft按钮。
let pickup = CLLocationCoordinate2D(latitude: 37.7833, longitude: -122.4167)
let destination = CLLocationCoordinate2D(latitude: 37.7794703, longitude: -122.4233223)
LyftDeepLink.requestRide(kind: .Standard, from: pickup, to: destination)
请注意,您可以在此次请求中指定LyftDeepLinkBehavior,以在深度链接到原生Lyft应用或在你的应用中启动Lyft的移动Web体验之间进行选择。
支持
如果您需要帮助配置或使用SDK,或者您有与我们API相关的其他问题,Lyft开发者平台团队可以通过Stack Overflow(使用lyft-api
标签)提供支持。
报告安全漏洞
如果您在Lyft iOS SDK中发现了漏洞或潜在漏洞,请在[email protected]联系我们。我们将发送一封确认邮件以确认您的报告,并在确定问题正面或负面后发送额外的一封邮件。