测试测试过 | ✗ |
Lang语言 | Obj-CObjective C |
许可 | BSD |
发布上次发布 | 2014年12月 |
由 未声明 维护。
依赖项 | |
AFNetworking | ~> 1.2.0 |
NXOAuth2Client | ~> 1.2.0 |
RunKeeper-iOS 提供了一个 Objective C 包装类,可用于从 iOS 4.0 或更高版本访问 RunKeeper Health Graph API。
RunKeeper-iOS 是为我们的 iPhone 健身应用“Running Intensity”开发的。它应该是通用的,但主要是为跑步应用而构建的。API 未经完全支持,但将根据我们的自身需求或他人的请求添加更多。
如果你发布通知,RunKeeper 将自动为你创建一个正确时间戳的路径。
RunKeeperPathPoint *point = [[[RunKeeperPathPoint alloc] initWithLocation:newLocation ofType:kRKGPSPoint] autorelease];
[[NSNotificationCenter defaultCenter] postNotificationName:kRunKeeperNewPointNotification object:point];
[self.runKeeper postActivity:kRKRunning start:[NSDate date]
distance:[NSNumber numberWithFloat:10000]
duration:[NSNumber numberWithFloat:[self.endTime timeIntervalSinceDate:self.startTime] + elapsedTime]
calories:nil
heartRate:nil
notes:@"What a great workout!"
path:self.runKeeper.currentPath
success:^{
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Success"
message:@"Your activity was posted to your RunKeeper account."
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease];
[alert show];
}
failed:^(NSError *err){
NSString *msg = [NSString stringWithFormat:@"Upload to RunKeeper failed: %@", [err localizedDescription]];
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Failed"
message:msg
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease];
[alert show];
}];
更多示例请查看附带的示例项目。
self.runKeeper = [[[RunKeeper alloc] initWithClientID:kRunKeeperClientID clientSecret:kRunKeeperClientSecret] autorelease];
your URL Scheme 由取 RunKeeper ClientID 并在其前面添加 "rk" 构建而成 --- 示例为 "rk055cac1c950b46e6ac7910d62800a854"。URL 方案在您的 Info.plist 应用程序文件中进行注册,以便接收 OAuth2 的重定向。
在您的应用程序代理中
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
[self.runKeeper handleOpenURL:url];
return TRUE;
}
您首先尝试连接到 RunKeeper。如果用户之前已授权该应用程序和访问令牌,且访问令牌仍然可用,则连接将立即发生,而无需任何干预
[[AppData sharedAppData].runKeeper tryToConnect:self];
如果用户未授予授权或者访问令牌已经丢失/删除,您的委托方法 needsAuthentication
将被调用。在这个方法中,您可以通过 OAuth 请求授权。
- (void)needsAuthentication {
[[AppData sharedAppData].runKeeper tryToAuthorize];
}
查看示例应用程序以了解一个非常简单的集成。
请随意添加改进、错误修复、更改,并将它们反馈给社区!
谢谢
Remid van Melle