SmartLearn SDK for iOS
介绍
适用于iOS的SmartLearn SDK(由于重命名,原称为EduRoomSDK。项目和cocoapod名称为旧名称,因为重命名需要一些时间)使第三方应用能够通过SmartLearn课程提供。
SmartLearn应用作为中心用于连接第三方应用和网络内容。
支持的编程语言:Swift 和 Objective-C.
SmartLearn和您的应用如何协同工作
SmartLearn应用通过使用自定义URL规范来打开您的应用。打开应用成功后,SDK将开始运行,并向SmartLearn后端发送HTTPS心跳请求来指示学生正在活跃。
当教师选择将您的应用包含在他们课程中时,它将在SmartLearn应用中显示。点击您的应用时,它会尝试打开它。如果设备上尚未安装,学生将被重定向到应用商店以下载它。
如何注册
您可以在 https://smart-learn.online/firmen/ios-sdk 容易地注册您的应用。
但是,在注册之前需要定义一些属性! 请继续阅读以获取详细信息。
我们将尽快审核您的提交并发布。
自定义URL模式
请选择一个 唯一 的模式以避免冲突。通常,捆绑识别符是自定义URL模式的好选择,例如 com.mycompany.myapp://
您可以通过遵循 Apple的官方说明 为您的应用注册一个自定义URL模式。
App Store识别符
您可以使用 Apple的链接生成器 查找您的App Store识别符。搜索您的应用,然后检查底部的直接链接。标识符是字符串 id
后面的数字。
示例:https://itunes.apple.com/de/app/eduroom-sch%C3%BCler-app/id1441459022?mt=8
的App Store识别符是: 1441459022。
如果您还没有识别符,您可以再次注册或通过发送电子邮件到 [email protected] 提供缺失的id。请提供您应用的名称和自定义URL模式。
安装 & 示例
SmartLearn SDK可通过CocoaPods获得。要安装它,只需在Podfile中添加以下行
pod 'EduRoomSDK'
请查看示例项目,包括Swift和Objective-C。在AppDelegate.swift
或AppDelegate.m
文件中,您可以找到SDK的参考集成。
要运行示例项目
- 克隆仓库
git clone https://github.com/EdumodeOrg/EduRoomSDK-iOS.git
- 将 CD拖入
示例
文件夹 - 首先在
示例
目录下运行pod install
- 在 XCode 中打开
EduRoomSDK.xcworkspace
集成 SDK
所有操作都在AppDelegate
类中完成。
1. 导入 SmartLearn SDK
Swift
import EduRoomSDK
Objective-C
@import EduRoomSDK;
2. 当你的应用通过 SmartLearn 打开时启动会话
主入口是 UIApplicationDelegate
的 application(_:open:options:)
方法。
application(_:didFinishLaunchingWithOptions:)
:
Swift
func application(_ app: UIApplication, open url: URL,
options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
if url.absoluteString.starts(with:"de.edumode.eduroomsdkexampleapp") {
EduRoom.shared.startSession(url: url)
}
return true
}
Objective-C
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
if ([url.absoluteString hasPrefix:@"de.edumode.eduroomsdkexampleapp"]) {
[[EduRoom shared] startSessionWithUrl:url];
}
return YES;
}
由于 iOS 13,苹果将不属于团队的 App 的 options key .sourceApplication
的值设置为空/null。为了防止 SmartLearn SDK 被
SDK使用的 App 资源
-
SDK 会以 HTTPS 的形式向 SmartLearn 后端发送一个定期的心跳 ping 请求。使用一个临时内建的 临时 URL 会话 发送请求。
-
会话开始时,SDK 将禁用应用的 空闲定时器。这是为了避免学生在一堂课的整个过程中不使用第三方应用而导致心跳被停止。会话结束时恢复定时器。
如何测试
请确保以下步骤已完成
- SDK 已集成 ✓
- 你的 App 已注册 ✓
简单的自定义 URL scheme 测试
为了测试你的自定义 URL scheme,你可以创建一个单视图 iOS 应用。调用以下代码以检查你的应用(包含 SmartLearn SDK)是否已打开
Swift
if let url = URL(string: "com.mycompany.myapp://test") {
UIApplication.shared.open(url, options: [:]) { (success) in
print(success)
}
}
Objective-C
NSURL *url = [[NSURL alloc] initWithString:@"com.mycompany.myapp://test"];
[[UIApplication sharedApplication] openURL:url
options:@{}
completionHandler:^(BOOL success) {
NSLog(@"%d", success);
}];
全面集成测试
- 在设备上安装您的应用程序,包括SmartLearn SDK。
- 从App Store获取SmartLearn应用程序。
- 在edumode.org中创建一个教师账户。滚动到免费试用Lehrer-App。按照电子邮件中的说明操作。
- 作为学生,在SmartLearn应用程序中创建一个账户。
- 作为教师,创建一个群组,并通过提供的QR码邀请新创建的学生账户。
- 作为教师,创建一个规则集。搜索您的应用程序并包括它。
- 作为教师,创建一个课程。设置今天的日期和宽的时间范围。设置您的新创建的规则集。设置您的群组。点击参与者名单
- 作为学生,您可以下拉以更新可用的课程,或者只需等待几秒钟。课程出现后立即触摸它。您的应用程序应该出现。触摸它,系统对话框应弹出来询问您是否要打开应用程序。在确认后,您的应用程序应该打开。
- 作为教师,学生的状态应该变为绿色。
如果学生在几分钟后仍然保持绿色,那么ping请求按预期工作。
恭喜!
建议
如果可能的话,请显示每个方向的**状态栏**。经验表明,学生每节课会多次**检查时间**。iOS在横向旋转时将隐藏状态栏和时钟。由于一些应用程序在使用横向旋转时提供最佳用户体验,学生可能会下拉消息中心以再次查看时钟,而不知道这会导致将应用程序置于后台。这可能导致错过必须保持学生在课程中活跃的ping请求。
您可以通过在视图控制器中覆盖preferredScreenEdgesDeferringSystemGestures
在您的视图控制器中添加一个小障碍,以阻止下拉状态栏。
Swift
override var preferredScreenEdgesDeferringSystemGestures: UIRectEdge {
get {
return .all
}
}
Objective-C
- (UIRectEdge)preferredScreenEdgesDeferringSystemGestures
{
return UIRectEdgeAll;
}
遗憾的是,iPhone X型号在横向旋转时总是隐藏状态栏。
错误 & 反馈
请使用项目的Github问题。
作者
Nicky Weber, [email protected]
许可协议
SmartLearn SDK 基于 MIT 许可协议提供。详细信息请参阅 LICENSE 文件。