KapabelSDK 0.8.5

KapabelSDK 0.8.5

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最新版本2017年1月
SwiftSwift 版本3.0
SPM支持 SPM

Oyvind Kvanes 管理。




  • Oyvind Kvanes

KapabelSDK

更新:现在 Kapabel SDK 允许您在离线时存储结果。一旦您上网,这些结果将被提交。

Kapabel 非常易于集成到您的应用程序中。登录是通过我们的应用程序进行的,类似于“通过 Facebook 登录”。

您只需要在应用程序的某个位置添加一个“通过 Kapabel 登录”按钮,并添加我们的 SDK。

查看Kapabel 应用并进行测试,使用挪威测验演示应用程序。

目录

  1. 快速集成。
  2. 家长控制。
  3. 本地化。
  4. 逐步集成。

Integrate Kapabel

快速集成。

2. 在您希望使用 KapabelSDK 的类中导入 KapabelSDK

import KapabelSDK

3. 将 CFBundleURLTypes 从 kapabel.plist 复制到您的应用程序的 Info.plist

Paste Kapabel

4. 将其添加到 AppDelegate

    // Runs after logging in from Kapabel App
    func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
        Kapabel.instance.saveInfo(userInfo: url.absoluteString)
        return true
    }

    func applicationDidBecomeActive(_ application: UIApplication) {
        // Update Kapabel information
        let YOUR_APP_ID = 0 // You create apps in the developer dashboard
        let YOUR_API_TOKEN = "some-token-here" // You get this when signing up
        let YOUR_APP_GROUP_NAME = "group.your.own.group.here" // Create this in Target/Capabilities
        Kapabel.instance.update(id: YOUR_APP_ID, token: YOUR_API_TOKEN, appGroup: YOUR_APP_GROUP_NAME) 
    }

注意:确保您的项目名称中没有空格。由于 iOS 中深链接的设置方式,Kapabel SDK 在这种情况下无法正常工作。

5. 添加“通过 Kapabel 登录”按钮

如果您的应用程序位于“为儿童制作”类别中,您可以使用以下内容

Kapabel.instance.parentalGate(true)
Kapabel.instance.logInWithKapabel(sender: self)

这需要从一个将打开带家长控制的 UIAlertController 的 UIViewController 发送。一旦家长控制被解决,用户就能从 Kapabel 应用程序中登录。如果尚未安装,他们将下载该应用程序。

Parental Gate with Kapabel

如果您的应用程序不位于“为儿童制作”类别中,或者您想实现自己的家长控制,请使用以下内容

Kapabel.instance.logInWithKapabel(sender: self)

这直接将他们带到 Kapabel 应用或 App Store。

Login with Kapabel

6. 在您的应用中启动任务

let MY_APP_TASK_ID = 122 // You create AppTaskIDs in the developer panel.
Kapabel.instance.startTask(MY_APP_TASK_ID)

7. 在您的应用中关闭任务

var THE_SCORE = 0.75 // Score between 0.00 and 1.00
Kapabel.instance.endTask(THE_SCORE)

8. 向苹果提交您的更新。

Developer Kapabel

家长控制

苹果应用商店审查准则中关于儿童应用安全的相关说明如下

儿童分类是人们轻松找到适合儿童应用的一个好方法。如果您想参与儿童分类,应专注于为年轻用户提供特定的良好体验。除非这些应用在家长控制家中指定的区域内提供,否则这些应用不得包含应用外链接、购买机会或对儿童的干扰。

因此,您必须在用户前往应用商店下载Kapabel应用之前在您的应用中包含一个家长控制功能。已经包含在SDK中的家长控制功能是一个类似于这样的UIAlertController:

Ask your parents

如果您想在登录Kapabel之前在您的应用中使用此功能,可以使用以下代码:

Kapabel.instance.parentalGate(true)
Kapabel.instance.logInWithKapabel(sender: self)

当然,如果您愿意,您也可以实现自己的家长控制功能,但您的应用在儿童分类中时,登录Kapabel必须在家长控制之后进行。

本地化

Kapabel SDK在家长控制中的确认用户成功登录的toasts使用了一些字符串。您可以在Kapabel.strings文件中找到所有这些字符串。

如果您使用CocoaPods安装Kapabel,需要将您想要的本地化添加到您的项目中;您可以在本地化文件夹中找到Kapabel.strings的本地化版本。

逐步集成

本部分介绍了如何将KapabelSDK集成到新应用中。详细程度足以帮助经验有限的开发者。

如果您使用CocoaPods,您可以跳过第1-3部分,并在Podfile中添加以下内容:

pod 'KapabelSDK'

1. 下载Kapabel SDK

2. 将SDK拖拽到您的项目中

Drag to project

3. 安装Alamofire

4. 从KapabelSDK-master文件夹中的kapabel.plist文件中复制CFBundleURLTypes

CFBundle URL Types

5. 将此内容粘贴到您的Info.plist文件中,该文件通常位于资源文件夹下。

Paste in pList

这将为您的应用程序设置一个自定义URL方案作为您的捆绑标识符。这是必要的,以便Kapabel应用可以将信息发送回您的应用。这是在用户登录时发生的。

您可以在这里了解有关深链和应用程序之间通信的更多信息。

6. 前往Kapabel开发者面板 - 联系我们。

在开发者面板中,您将创建您的ApiToken、AppIDs和AppTaskIDs。

Kapabel开发者面板目前正在开发中,请通过[email protected]联系我们,我们将为您手动创建这些。

7. 在AppDelegate中添加startKapabel

首先,您需要在想使用KapabelSDK的类中导入它

import KapabelSDK

Update AppDelegate 在您的AppDelegate中添加以下方法

// Runs after logging in from Kapabel App
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
let YOUR_APP_ID = 1 // You create apps in the developer dashboard
let YOUR_API_TOKEN = "something-something" // You get this when signing up
Kapabel.instance.startKapabel(YOUR_APP_ID, apiToken: YOUR_API_TOKEN, userInfo: url.absoluteString)
return true
}

这个方法的功能是将用户token与您的应用进行注册。这对于将结果发送到Kapabel是必需的。

默认情况下,Kapabel使用吐司来显示当用户登录时。如果登录失败或用户出于某种原因被注销,也会显示吐司。用户将保持登录状态,直到他们前往Kapabel应用注销。

如果您希望停止显示吐司,可以这么做

Kapabel.instance.showToasts(false)

如果您想要更多地了解Kapabel在做什么,可以使用

Kapabel.instance.showLog(true)

8. 添加“使用Kapabel登录”按钮。

为了让您的应用开始向Kapabel发送数据,用户需要登录。用户通过Kapabel应用进行登录。这与使用Facebook、Twitter、Google等登录类似。

Add Kapabel Button

当点击此按钮时,您将调用以下方法

如果您的应用程序位于“为儿童制作”类别中,您可以使用以下内容

Kapabel.instance.parentalGate(true)
Kapabel.instance.logInWithKapabel(sender: self)

这需要从一个将打开带家长控制的 UIAlertController 的 UIViewController 发送。一旦家长控制被解决,用户就能从 Kapabel 应用程序中登录。如果尚未安装,他们将下载该应用程序。

Parental Gate with Kapabel

如果您的应用程序不位于“为儿童制作”类别中,或者您想实现自己的家长控制,请使用以下内容

Kapabel.instance.logInWithKapabel(sender: self)

这直接将他们带到 Kapabel 应用或 App Store。

9. 测试使用Kapabel登录。

我建议按照下面的截图测试使用Kapabel登录的功能。当您点击“使用Kapabel登录”按钮时,如果您已安装了Kapabel应用,您将被带到Kapabel应用。如果没有安装,您将被带到App Store进行下载。

在Kapabel应用中,您将能够登录或创建新账户。登录后,将弹出一个询问是否使用此账户登录到您的应用。点击“确定”,您将回到应用。现在,您已在应用中使用Kapabel登录。

Login with Kapabel

用户将在您的应用中保持使用Kapabel登录的状态,直到他们主动前往Kapabel应用进行注销。如果用户在其他设备上注销Kapabel,他们也会被注销。

10. 在您的应用中启动Kapabel任务。

现在,您需要决定在哪里在您的应用中启动Kapabel任务。这取决于您的应用如何构建,可以在一个或多个地方开始。我将使用我的Decimals应用来展示如何完成。

Decimals有一个startNewRound()方法,在每个回合的开始运行,这是一个启动新任务的好地方。要启动新任务,您需要粘贴以下代码

let MY_APP_TASK_ID = 122 // You create AppTaskIDs in the developer panel.
Kapabel.instance.startTask(MY_APP_TASK_ID)

App任务ID是在您的开发者面板中创建的。对于Decimals,我有以下App任务

App tasks

Decimals有6种不同的活动,因此我使用了6个不同的AppTaskID来反映这一点。应用处理3个不同的数学主题,即加法、减法和乘法。为AppTaskIDs选择正确的主题非常重要,因为它帮助教师了解学生哪些科目部分有困难。

现在我的startNewRound()方法看起来是这样的

// Starts a new round
func startNewRound() {
let MY_APP_TASK_ID = SettingsManager.sharedInstance.taskID
Kapabel.instance.startTask(MY_APP_TASK_ID)
round += 1
attemptsAtCurrentQuestion = 0
updateLabels()
setUpNewQuestion()
}

我从SettingsManager获取正确的AppTaskID,然后启动一个任务。

11. 为Kapabel任务提交结果。

当你的应用用户完成你想提交结果的Kapabel活动时,你可以使用以下代码来实现

var THE_SCORE = 0.75
Kapabel.instance.endTask(THE_SCORE)   

提交的分数必须是介于0.0和1.0之间的值,而如何评分活动则由你自己决定。除了你提交的分数外,Kapabel还会记录完成任务所需的时间。这将影响学生在完成任务后获得的经验值。

在我的Decimals应用中,我在checkAnswer()方法中提交结果

func checkAnswer(){
var currentTaskScore = (4.0 - Double(attemptsAtCurrentQuestion)) / 4.0
if (currentTaskScore < 0.0){
currentTaskScore = 0.0
}
Kapabel.instance.endTask(currentTaskScore)
}

Results

在这个应用中,学生需要在5个选项中选择正确的答案。如果他们立即回答正确,将获得1.0分,如果犯了一个错误将获得0.75分,等等。

Dashboard

在这里,你可以看到使用Decimals应用的学生的一些结果在Kapabel仪表板上的样子。你可以在每个AppTask下看到几个任务以及它们的开始和结束时间。

12. 在Kapabel应用中检查您的账户。

Statistics

在使用你的应用一段时间并完成了一些任务后,你可以进入Kapabel应用并查看结果。你应该看到所完成任务的次数增加了,并且你已经在正确的主题中获得了经验值。

13. 提交您的应用更新。

现在一切都已完成,你可以将更新提交给Apple。同时请告诉我们你的应用已集成,这样我们可以将其添加到我们的应用目录中,并将学生引荐给你。

联系方式

如果您希望在您的应用中使用Kapabel,请联系我们:[email protected]。您还可以订阅我们的时事通讯,了解更多关于Kapabel的信息:[http://kapabel.io](http://kapabel.io)

要运行示例项目,首先克隆repo,然后在Example目录中运行pod install