测试已测试 | ✓ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布日期上次发布日期 | 2014年12月 |
由以下人员维护:Derrick Hathaway,Brandon Pluim,Ben Kraus,Miles Wright,Nathan Lambson,Nathan Lambson,Brandon Pluim,Nate Armstrong。
依赖项 | |
AFNetworking | ~> 2.3.1 |
Mantle | ~> 1.0 |
ISO8601DateFormatter | >= 0 |
ReactiveCocoa | >= 0 |
CanvasKit 是一个正在进行中的项目——架构仍然可能改变,并且并非所有 API 端点都已实现。
CanvasKit 是一个库,可以帮助您将您的第三方应用程序与 Instructure 的 Canvas 集成。
CanvasKit 基于 Canvas API 构建。CanvasKit 设计用于在提供易于使用的界面的同时提供极高的灵活性。您可以使用 CanvasKit 来构建用于 Canvas 的开源版本的以及由 Instructure 托管的实例的应用程序。
注意:Canvas Kit 尚未是 Cocoapod,但将很快是
CocoaPods 是 Objective-C 的依赖管理器,它会自动简化使用例如 CanvasKit 的第三方库的过程。请参阅“入门”指南以获取更多信息。
platform :ios, '7.0'
pod "CanvasKit", "~> 2.0"
CanvasKit 2.0 是从 CanvasKit 之前版本的重大重构。到目前为止,CanvasKit 仅在 Instructure 的内部项目中使用。最近重构的主要目标之一是使 CanvasKit 成为开源的,并便于第三方开发者使用。
为了使用 CanvasKit 与 Instructure 管理的 Canvas LMS 实例,您必须获取一个客户端 ID 和共享密钥。CanvasKit 使用 OAuth 2 进行身份验证。通过发送电子邮件到 [email protected] 请求您的客户端 ID 和共享密钥。请确保提供您的姓名、电子邮件和您打算如何使用 CanvasKit
CanvasKit 中的所有网络通信都由 CKIClient
负责。使用您的客户端 ID 和共享密钥创建 CKIClient
,如下所示
CKIClient *client = [CKIClient clientWithBaseURL:url clientID:ClientID sharedSecret:SharedSecret];
如果客户端尚未登录,您可以调用 -login
来登录。此方法将处理向用户显示可模态网页和 OAuth 流程。最后,您可以查看
[[self.client login] subscribeError:^(NSError *error) {
// do somethign with the error
} completed:^{
// login completed successfully. do something.
}];
如果您想获取当前登录用户的信息,可以通过访问 client.currentUser
属性来实现。有关更多信息,请参阅 CKIUser
。
CanvasKit包括Canvas LMS中许多对象的类。除了这些模型类,CanvasKit 还在 CKIClient
上提供了用于访问API端点的网络类别。例如,要获取当前用户的全部课程,您可以这样做
[[client fetchCoursesForCurrentUser] subscribeNext:^(NSArray *courses) {
// handle a page of courses
}];
每个网络方法都以'fetch'开头,这使得您可以通过Xcode自动完成功能轻松查看所有可用选项。
有一点需要注意,CanvasKit使用ReactiveCocoa,但是,使用CanvasKit不需要了解ReactiveCocoa(尽管了解ReactiveCocoa可以使您执行更强大的功能)。每个网络调用都返回一个 RACSignal
对象。只需在该信号上调用 subscribeNext:
来处理数据。本质上,分页数据将被作为一个页面流来处理,即您的 subscribeNext:
块会被调用一次,对于每一页。
CanvasKit 采用MIT许可证提供。有关更多信息,请参阅LICENSE文件。