Class Kit
Plugin for using Apple's ClassKit framework.
Prerequisites: Only works with Xcode 9.4 and iOS 11.4. Your Provisioning Profile must include the ClassKit capability. Read more about how to Request ClassKit Resources (https://developer.apple.com/contact/classkit/) in here: https://developer.apple.com/documentation/classkit/enabling_classkit_in_your_app. Also note that you can’t test ClassKit behavior in Simulator because Schoolwork isn’t available in that environment.
联系我们?

If you're building a serious project, you can't afford to spend hours troubleshooting. Ionic's experts offer official maintenance, support, and integration help.
Ionic Class Kit插件的安装(Installation)
Ionic EE comes with fully supported and maintained plugins from the Ionic Team. Learn More or Contact Us
Ionic Class Kit插件支持的平台(Supported Platforms)
- iOS
Ionic Class Kit插件的用法(Usage)
import { ClassKit, CCKContext, CCKBinaryItem, CCKQuantityItem, CCKScoreItem, CCKContextTopic, CCKContextType, CCKBinaryType } from '@ionic-native/class-kit/ngx';
// Init contexts defined in XML file 'CCK-contexts.xml'
constructor( ..., private classKit: ClassKit) {
platform.ready().then(() => {
classKit.initContextsFromXml("classkitplugin://")
.then(() => console.log("success"))
.catch(e => console.log("error: ", e));
});
}
...
// Init context with identifier path
const context: CCKContext = {
identifierPath: ["parent_title_one", "child_one", "child_one_correct_quiz"],
title: "child one correct quiz",
type: CCKContextType.exercise,
topic: CCKContextTopic.science,
displayOrder: 0
};
this.classKit.addContext("classkitplugin://", context)
.then(() => console.log("success"))
.catch(e => console.log("error: ", e));
// Remove all contexts
this.classKit.removeContexts()
.then(() => console.log("success"))
.catch(e => console.log("error: ", e));
// Remove context with identifier path
this.classKit.removeContext(["parent_title_one", "child_one", "child_one_correct_quiz"])
.then(() => console.log("success"))
.catch(e => console.log("error: ", e));
// Begin a new activity or restart an activity for a given context
this.classKit.beginActivity(["parent_title_one", "child_two", "child_two_quiz"], false)
.then(() => console.log("success"))
.catch(e => console.log("error: ", e));
// Adds a progress range to the active given activity
this.classKit.setProgressRange(0, 0.66)
.then(() => console.log("success"))
.catch(e => console.log("error: ", e));
// Adds a progress to the active given activity
this.classKit.setProgress(0.66)
.then(() => console.log("success"))
.catch(e => console.log("error: ", e));
// Adds activity information that is true or false, pass or fail, yes or no
const binaryItem: CCKBinaryItem = {
identifier: "child_two_quiz_IDENTIFIER_1",
title: "CHILD TWO QUIZ 1",
type: CCKBinaryType.trueFalse,
isCorrect: isCorrect,
isPrimaryActivityItem: false
};
this.classKit.setBinaryItem(binaryItem)
.then(() => console.log("success"))
.catch(e => console.log("error: ", e));
// Adds activity information that signifies a score out of a possible maximum
const scoreItem: CCKScoreItem = {
identifier: "total_score",
title: "Total Score :-)",
score: 0.66,
maxScore: 1.0,
isPrimaryActivityItem: true
};
this.classKit.setScoreItem(scoreItem)
.then(() => console.log("success"))
.catch(e => console.log("error: ", e));
// Activity information that signifies a quantity
const quantityItem: CCKQuantityItem = {
identifier: "quantity_item_hints",
title: "Hints",
quantity: 12,
isPrimaryActivityItem: false
};
this.classKit.setQuantityItem(quantityItem)
.then(() => console.log("success"))
.catch(e => console.log("error: ", e));