此 SDK 使得与 Brightcenter 通信更加容易。它通过切换应用检索登录的学生。
当您注册或编辑一个评估时,您可以更改您的 appUrl。您的 appUrl 需要与您的 CFBundleURLSchemes 相同。如果您注册了 appUrl,您可以在:www.brightcenter.nl/dashboard/createSdkUrl 上生成测试链接。在那里您可以选择您的应用和学生,链接将自动生成。如果您在此链接上的设备或模拟器上打开此链接,您的应用将打开。当 Brightcenter 应用完成时,它将以相同的方式打开您的应用。警告:Brightcenter 应用尚未可用,因此应用切换功能将不会工作。应用即将推出!
转到 XCode 项目目录,创建一个名为 PodFile
的文本文件,并将以下内容粘贴进去
platform :ios, '7.0'
pod 'BrightcenterSDK-2.0', '~> 0.9.19'
现在打开终端,切换到 XCode 项目目录。运行 pod install
命令。就是这样!您可以使用 XCode 或 AppCode(而非 YourApp.xcodeproj)打开生成的 YourApp.xcworkspace 文件。
在您可以使用 SDK 之前,您需要执行一些操作。首先,您必须将 CFBundleURLScheme 添加到您的 {app}-info.plist 文件中。您可以通过添加以下内容来实现此功能
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>YOURAPPURLSCHEME</string>
</array>
<key>CFBundleURLName</key>
<string>YOURAPPBUNDLENAME</string>
</dict>
</array>
其次,您需要在应用代理中添加一些内容。将以下内容添加到您的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
中
BCAResultController *controller = [BCAResultController instance];
[controller configure];
NSURL *urlToParse = [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey];
if (urlToParse) {
[self application:application handleOpenURL:urlToParse];
}
您还需要添加以下函数
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
BCAAppSwitchController *appSwitchController = [BCAAppSwitchController instance];
[appSwitchController configureWithUrl:url];
return YES;
}
这确保了您的应用切换将被正确处理。
要打开 Brightcenter 应用,您可以使用以下代码(请注意,您必须实现 AppSwitchDelegate 协议)
BCAAppSwitchController *appController = [BCAAppSwitchController instance];
appController.appSwitchDelegate = self;
[appController openBrightcenterAppWithAssessmentId:@"YOUR ASSESSMENT ID" urlScheme:@"YOURURLSCHEME"];
评估 ID 也可以是 @""
(空)。当 Brightcenter 应用打开您的应用时,以下代理方法会被调用
- (void) appIsOpened:(NSString *) assessmentId{
// The student is available from here you can use: 'resultController.student'
}
调用此方法后,您就可以发送和检索结果!可以使用 assessmentId 立即加载评估,请注意,如果学生没有选择特定的评估,它也可以是 nil。可以忽略。
要检索结果,可以使用以下方法:
BCAResultController *resultController = [BCAResultController instance];
[_resultController loadResultsForAssessment:@"ASSESSMENTID" success:^(NSArray *results){
NSLog(@"results are loaded");
}failure:^(NSError *error, BOOL loginFailure){
NSLog(@"failure with loading results");
}];
要发送结果,可以使用以下方法:
[_resultController sendResultWithScore:(double) duration:(double) completionStatus:@"INCOMPLETE" assessmentId:@"YOURASSESSMENTID" questionId:@"QUESTIONID"
success:^(void){
NSLog(@"post succes");
} failure:^(NSError *error, BOOL loginFailure){
NSLog(@"post failure");
}];
我们还创建了一个将在应用程序右下角放置的标志按钮。要使用此按钮,您可以调用以下方法:
BCALogoButton *logoButton = [BCALogoButton createButtonWithDelegate:self assessmentId:@"YOUR ASSESSMENTID" urlScheme:@"YOURURLSCHEME"];
[self.view addSubview:self.logoButton];
要为屏幕旋转后添加正确的行为,您可以使用以下两个函数:
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
for (UIView *subView in self.view.subviews)
{
if (subView.tag == 1337)
{
[subView removeFromSuperview];
}
}
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
BCALogoButton *logoButton = [BCALogoButton createButtonWithDelegate:self assessmentId:@"YOUR ASSESSMENTID" urlScheme:@"YOURURLSCHEME"];
[self.view addSubview:self.logoButton];
}
这将确保按钮始终位于右下角。和通常一样,appswitch 之后会调用 - (void) appIsOpened
函数。
有关示例,请查看此项目。它包含创建工作应用程序所需的一切。