测试测试过的 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | 定制 |
发布最后发布 | 2017年6月 |
由 Brandon Bodnar,Jeff Behrbaum,吴瑞安,Ibrahim Kurabi 维护。
依赖 | |
Godzippa | >= 0 |
Firebase | ~> 2.5.1 |
DriversitiSDK for iOS 允许正驾驶公司跟踪驾驶员行为并接收注册驾驶员的实时事件通知。除了实时通知外,这些行为和事件还将上传到 Driversiti 云,允许 Driversiti 的客户以后访问其公司驾驶员的行为和整体驾驶评分。
如果 DriversitiSDK 使用手机的传感器检测到车辆碰撞,它将使用专利的实时碰撞检测来通知主机应用程序。
location
UIBackgroundMode 和位置始终使用例如:APTrip 现在是 DriversitiTrip,APTripEvent 现在是 DriversitiEvent
请务必更改所有已弃用调用,因为它们因安全漏洞而被弃用,并且不再返回有效的对象。
在 DriversitiSDK 启动操作之前,您的组织需要获取一个 DriversitiSDK 开发者密钥,您可以通过Driversiti SDK 密钥请求表单进行申请。您的组织只需要一个共享的 SDK 密钥,该密钥可以由您组织中的多个开发者用于 iOS 和 Android 平台。
虽然推荐使用 CocoaPods,但使用其他项目依赖管理器的开发者可以手动引入 DriversitiSDK。开发者可以在本存储库中找到以下必需文件。
libDriversitiSDK.a
。include/DriversitiSDK/
的公共头文件。Driversiti.bundle
。此包必须按原样包含到主应用程序的主包中。此外,手动引入的开发者必须还引入 DriversitiSDK 的必需依赖项。这些依赖项列在存储库根目录下的 DriversitiSDK.podspec
文件中。
Enable BitCode
设置为 NO
。Background Modes
,并且必须启用 Location Updates
。NSLocationAlwaysUsageDescription
。指定的字符串将在 DriversitiSDK 启动时提示用户,如果应用程序尚未收到始终在后台运行的先前用户许可。在使用 SDK 时,开发者应首先在共享的 DriversitiSDK 对象上设置组织的密钥。此外,主应用程序应确保将传递给 UIApplicationDelegate 的 locationOptions 传递给 DriversitiSDK,使用 startWithLaunchOptions:
方法。以下为主应用程序的 application:didFinishLaunchingWithOptions:
示例。
#import <DriversitiSDK/DriversitiSDK.h>
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
[[DriversitiSDK sharedInstance] setAPIKey:@"{DriversitiSDK-Developer-Key}"]
[[DriversitiSDK sharedInstance] startWithLaunchOptions:launchOptions];
...
}
将 {DriversitiSDK-Developer-Key}
替换为您的密钥。
另外,为了给 DriversitiSDK 提供机会,在主应用程序进入后台时继续运行,请在主应用程序的 applicationDidEnterBackground:
方法中包含以下内容
__block UIBackgroundTaskIdentifier taskID = [application beginBackgroundTaskWithExpirationHandler:^{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[[[DriversitiSDK sharedInstance] operationQueue] waitUntilAllOperationsAreFinished];
[application endBackgroundTask:taskID];
taskID = UIBackgroundTaskInvalid;
}];
}];
在 SDK 开始报告检测之前,需要使用 UserManager
的适当方法注册用户。以下是一个示例。
[[UserManager sharedInstance]
userRegisterWithEmailAddress:@"{EMAIL}"
password:@"{PASSWORD}"
firstName:@"{FIRST-NAME}"
middleName:@""
lastName:@"{LAST-NAME}"
streetAddress:@""
city:@""
state:@""
country:@""
zipcode:@""
phoneNumber:@"{PHONE-NUMBER}"
username:@"{USERNAME}"
companyId:@"{COMPANY}"
completionBlock:^(NSError *error)
{
if (error != nil) {
// Handle error case
} else {
// Handle success case
}
}];
重要的是,{COMPANY}
需要设置为通过 [email protected] 给予您公司的名称。对于试用客户,请使用 Soteria
作为公司名称。
DriversitiSensorDelegate
代理并开始数据采集为了接收实时事件通知,主应用程序需要使用 DriversitiSDK
上的 sensorDelegate
属性注册符合 DriversitiSensorDelegate
协议的实例。
一切设置完毕后,主应用程序应调用 DriversitiSDK
上的 -startDataCollection
方法。事件通知将通过 DriversitiSensorDelegate
流入主应用程序。