Xee iOS SDK
这个 SDK使得在 iOS 设备上使用Xee API更简便。它使用 Swift 编写
示例
要运行示例项目,请克隆存储库,然后首先从 Example 目录运行 pod install
要求
此SDK适用于iOS版本>= 8.0
安装
XeeSDK可通过CocoaPods获取。要安装,只需将以下行添加到您的Podfile
pod 'XeeSDK'
然后启动命令
pod install
配置
在我们的开发者空间创建一个应用以获取凭据,查看如何创建应用
在您的AppDelegate中导入SDK
import XeeSDK
接着,在didFinishLaunchingWithOptions
方法中,创建一个包含您应用所有信息的XeeConfig对象,然后将它传递给ConnectManager单例
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let xeeConfig = XeeConfig(withClientID: "<App Client ID>",
SecretKet: "<App Secret Key>",
Scopes: ["<App Scope list>"],
RedirectURI: "<App Redirect URI>",
Environment: <App Environment>)
XeeConnectManager.shared.config = xeeConfig
return true
}
示例
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let xeeConfig = XeeConfig(withClientID: "0123456789abcdefghijklmnopqrstuvwxyz",
SecretKet: "0123456789abcdefghijklmnopqrstuvwxyz",
Scopes: ["account.read", "vehicles.read", "vehicles.signals.read", "vehicles.locations.read", "vehicles.trips.read"],
RedirectURI: "xee-sdk-example://app",
Environment: .XeeEnvironmentCLOUD)
XeeConnectManager.shared.config = xeeConfig
return true
}
然后在open url
方法中添加此行
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
XeeConnectManager.shared.openURL(URL: url)
return true
}
别忘了在您的URL Scheme("xee-sdk-example",本例中)中添加redirectURI
你已经准备好了!
注意,我们会保持这个SDK更新以提供您在API的第4版本上可用的所有端点
认证
创建账户
将XeeConnectManagerDelegate
协议添加到您的视图控制器中
当您想要用户创建账户时,调用connectManager单例的connect方法。
XeeConnectManager.shared.delegate = self
XeeConnectManager.shared.createAccount()
用户认证
将XeeConnectManagerDelegate
协议添加到您的视图控制器中
当您需要用户登录以获取有效的访问令牌时,请调用connectManager单例的connect方法。
XeeConnectManager.shared.delegate = self
XeeConnectManager.shared.connect()
断开用户连接
将XeeConnectManagerDelegate
协议添加到您的视图控制器中
当您想要断开用户连接时,请调用connectManager单例的disconnect方法。
XeeConnectManager.shared.delegate = self
XeeConnectManager.shared.disconnect()
XeeConnectManagerDelegate
四种情况
extension YourViewController : XeeConnectManagerDelegate {
func didSuccess(token: XeeToken) {
// Success
}
func didFail(WithError error: Error) {
// Fail
}
func didCancel() {
// Cancel
}
func didDisconnected() {
// Disconnected
}
}
如果没有访问令牌或令牌无效,SDK将在应用内打开safari以使用OAuth2进行认证。一旦safari回调您的应用,将调用<强的 didSuccess 方法。
车辆
关于您车辆的全部信息
关联车辆
为指定device_id和pin码的用户设置一辆车辆
XeeRequestManager.shared.associateVehicle(WithXeeConnectId: <XeeConnect ID>, PinCode: <Pin Code>, completionHandler: { (error, vehicle) in
// Your code here
})
检索用户车辆
返回指定用户ID对应的车辆信息
XeeRequestManager.shared.getVehicles(WithUserID: <User ID or nil for "me">, completionHandler: { (error, vehicules) in
// Your code here
})
解除车辆关联
删除车辆与设备的配对
// TODO
检索车辆
返回与指定ID对应的车辆
XeeRequestManager.shared.getVehicle(WithVehicleID: <Vehicle ID>, completionHandler: { (error, vehicule) in
// Your code here
})
更新车辆
更新具有指定ID的车辆
XeeRequestManager.shared.updateVehicle(WithVehicle: <XeeVehicle object>, completionHandler: { (error, vehicle) in
// Your code here
})
检索车辆状态
返回车辆状态
XeeRequestManager.shared.getStatus(WithVehicleID: <Vehicle ID>, completionHandler: { (error, status) in
// Your code here
})
用户
访问您的个人资料
检索用户
返回指定ID对应的用户,me代表当前用户
XeeRequestManager.shared.getUser(WithUserID: <User ID or nil for "me">, completionHandler: { (error, user) in
// Your code here
})
更新用户
更新具有指定ID的用户
XeeRequestManager.shared.updateUser(WithUser: <XeeUser object>, completionHandler: { (error, user) in
// Your code here
})
信号
车辆信号(CAN信号、GPS和加速度计)
获取加速度计数据
获取指定日期范围内的车辆加速度计数据
// TODO
获取设备数据
获取指定时间范围内的车辆设备数据
// TODO
获取位置信息
获取指定日期范围内的车辆位置信息
// TODO
获取信号
获取指定日期范围内的车辆信号
// TODO
隐私
关于隐私操作的说明
停止隐私
停止现有的隐私会话
XeeRequestManager.shared.stopPrivacy(ForVPrivacyID: <Privacy ID>, completionHandler: { (error, privacy) in
// Your code here
})
检索隐私信息
返回包含两个日期之间的车辆隐私
XeeRequestManager.shared.getPrivacies(ForVehicleID: <Vdehicle ID>, From: <Date or nil>, To: <Date or nil>, Limit: <Int or nil>, completionHandler: { (error, privacies) in
// Your code here
})
创建新的隐私
在此车辆上创建新的隐私会话
XeeRequestManager.shared.startPrivacy(ForVehicleID: <Vehicle ID>, completionHandler: { (error, privacy) in
// Your code here
})
行程
访问车辆的行程
检索行程
返回指定行程 ID 对应的行程
XeeRequestManager.shared.getTrip(WithTripID: <Trip ID>, completionHandler: { (error, trip) in
// Your code here
})
检索行程位置
通过将日期范围重定向到信号 API 来返回行程位置
XeeRequestManager.shared.getLocations(WithTripID: <Trip ID>, completionHandler: { (error, locations) in
// Your code here
})
检索行程信号
通过将日期范围重定向到信号 API 来返回行程信号
XeeRequestManager.shared.getSignals(WithTripID: <Trip ID>, completionHandler: { (error, signals) in
// Your code here
})
检索车辆行程
根据指定的车辆ID返回相应的行程。按日期请求包含在内。例如,如果行程从15:00开始至16:00结束,那么从15:15到15:45的请求将返回这一行程。
XeeRequestManager.shared.getTrips(WithVehicleID: <Vehicle ID>, completionHandler: { (error, trips) in
// Your code here
})
授权
管理OAuth授权
撤销授权
撤销指定的授权
// TODO
检索用户的授权
返回与指定用户ID相对应的授权
// TODO
问题
我们正在努力提供一个无问题的SDK,但我们是凡人,所以我们可能犯错。
如果您发现什么问题,请随时提交一个issue或/和分支仓库以修复它!