AMVKit
此仓库是做什么的?
此仓库包含 AMVKit 的 Xcode 10 项目。
该套件具有 下载、存储 和 使用 设备证书的功能。
对于访问证书,同一功能还包括 删除 功能。
此外,该套件通过 轻松 的蓝牙广播和连接访问证书实现。
最后,它还提供了两种用于车辆门操作的简单方法 - 锁定 和 解锁。
安装
CocoaPods
请确保您正在运行最新版本的 CocoaPods,方法是在终端中运行:
gem install cocoapods
# (or if the above fails)
sudo gem install cocoapods
通过运行以下命令更新您本地的 spec 仓库:
pod repo update
注意: 此步骤是可选的,如果您最近更新了 spec 仓库。
将以下行添加到您的 Podfile 中:
pod 'AMVKit'
运行 pod install
并设置完成!
使用方法
主要方法
在应用源文件中导入 AMVKit 后,通过它的 单例 可以访问所有功能。
static var AMVKit.shared
要开始使用 AMVKit,必须对其进行 初始化。
accessSdkOptions 包含访问 amv-access-api 后端的 URL、凭据以及可选的身份。当从本地数据库加载 设备证书 或未存在时从服务器下载时,调用 handler-block。
这也将初始化 High Mobility 的框架,或在任何步骤失败时返回错误。
func initialise(accessSdkOptions newAccessSdkOptions, handler done: @escaping (Result<DeviceCertificate>) -> Void) throws
在初始化工具包后,可以从本地数据库加载 访问证书,或从服务器下载新的证书(在成功下载时覆盖本地数据库)。
下载新证书也将其注册到 High Mobility 的框架中。
func getAccessCertificates() -> [AmvAccessCertificate]?
func refreshAccessCertificates(_ done: @escaping (Result<[AmvAccessCertificate]>) -> Void) throws
要连接到车辆,必须选择 访问证书 并将其传递给方法。
这开始向车辆广播 蓝牙,其中包含广告数据中的车辆序列号。
找到合适的车辆后,将建立连接,进行认证并查询初始状态。
每当设备收到来自车辆的新数据或在断开连接时,都会调用方法的 handler-block。
func connect(to accessCertificate: AmvAccessCertificate, handler: @escaping (Result<VehicleUpdate>) -> Void) throws
附加方法
删除 访问证书 首先尝试从 服务器 删除它。
如果成功,它将从 本地数据库 删除,并将删除的证书用于参考调用 done-block。
func deleteAccessCertificate(_ accessCertificate: AmvAccessCertificate, done: @escaping (Result<AmvAccessCertificate>) -> Void) throws
从已连接的车辆断开连接。
此外,这 停止 蓝牙广播(如果正在激活)——可以在建立车辆连接之前使用。
func disconnect()
通过删除所有保存的 访问证书、设备证书 和 密钥 来重置 本地数据库。
func resetDatabase()
命令
在向车辆发送命令之前,您必须等待任何先前的查询完成。
请求当前车辆状态。
func sendCommand(.requestVehicleState) throws
锁上门
func sendCommand(.lockDoors) throws
解锁门
func sendCommand(.unlockDoors) throws
其他
所有 异步 方法都以 枚举 值返回结果。
enum Result<T> {
case error(Error)
case success(T)
}
测试
实现了 AMVKit 的测试
- 访问证书 下载 和解析
- 设备证书 下载 和解析
- 密钥对 生成
要运行它们,请打开 Xcode 项目,将 AMVKit 作为 目标方案 选择,并选择 测试。
许可协议
该项目遵循 Apache 许可协议。有关详细信息,请参阅 LICENSE。