SimpleInstapaperKit 是 Instapaper 简单开发者 API 的最小化 iOS 封装。使用此版本的 API,您可以验证登录信息并向用户的 Instapaper 列表中添加 URL。
Security
和 QuartzCore
框架。(见示例 Xcode 项目)
IKRequest
是连接到 API 并由其他类使用的类。它将当前登录用户名存储在 NSUSerDefaults
中,并将密码存储在钥匙串中。
调用 +[IKRequest setUsername:password:completed:]
将与服务器进行交互以验证登录凭证。如果它们是正确的,则会保存登录信息。无论哪种方式,都会调用完成块。
调用 +[IKRequest requestForAddWithURL:completed:]
将给定的 URL 添加到用户的列表中,不包含标题或描述。块中的 success 参数由成功的 HTTP 请求以及 HTTP 状态码(200 或 201)决定。
IKInstapaperActivity
是用于在 UIActivityViewController
中的 UIActivity
子类。它将任何在活动项数组中的 NSURL
添加到用户的 Instapaper 列表中。
NSURL *URL = [NSURL URLWithString:@"http://github.com/davbeck/SimpleInstapaperKit"];
IKInstapaperActivity *activity = [[IKInstapaperActivity alloc] init];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[URL] applicationActivities:@[activity]];
注意,您可以将该活动包含在任何 UIActivityViewController 中,并且只有在活动项中包含 URL 并且用户已登录或设备上安装了 Instapaper 应用时,才会显示给用户。如果由于身份验证问题无法添加 URL,将显示 IKLoginViewController
,并且 URL 将尝试重新添加。
IKLoginViewController
是一个 UIViewController
,用于获取用户的用户名和密码,检查 API 是否成功登录,然后保存凭据。
代码 `-[IKLoginViewController initWithCompletionHandler:]`(或直接使用 -[IKLoginViewController init]
)将创建一个主要的“操作即遗忘”的视图控制器。您只需要将其嵌入到一个 UINavigationController
中。
IKLoginViewController *loginViewController = [[IKLoginViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:loginViewController];
[self presentViewController:navigationController animated:YES completion:nil];