RunKeeper-iOS 0.0.1

RunKeeper-iOS 0.0.1

测试测试过
Lang语言 Obj-CObjective C
许可 BSD
发布上次发布2014年12月

未声明 维护。



 
依赖项
AFNetworking~> 1.2.0
NXOAuth2Client~> 1.2.0
 

  • Brierwood 设计和 Reid van Melle 提供

RunKeeper-iOS 提供了一个 Objective C 包装类,可用于从 iOS 4.0 或更高版本访问 RunKeeper Health Graph API

RunKeeper-iOS 是为我们的 iPhone 健身应用“Running Intensity”开发的。它应该是通用的,但主要是为跑步应用而构建的。API 未经完全支持,但将根据我们的自身需求或他人的请求添加更多。

依赖项

  • ASI HTTP Request - 用于底层网络访问
  • SBJson - 需要解析 bit.ly 的响应
  • OAuth2Client - 用于 OAuth2 访问 RunKeeper API
  • 你还需要注册 RunKeeper 帐户、创建应用并获取令牌

示例用法

保存 GPS 点

如果你发布通知,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];
                  }];

更多示例请查看附带的示例项目。

入门

使用您的密钥创建 RunKeeper 实例

  self.runKeeper = [[[RunKeeper alloc] initWithClientID:kRunKeeperClientID clientSecret:kRunKeeperClientSecret] autorelease];

注册 URL 方案

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