我正在使用 Moodle 3.2.2 并在 Moodle 中上传 Scorm 课程调度文件。一切正常,除了恢复课程。
我创建了自己的调度文件,就像 Scorm 云一样。当我通过下载 Scorm 云调度文件测试相同的课程时,它工作正常。但是我在 Moodle 中的调度文件没有恢复课程。
注意:我使用 iSpring Presenter 创建 SCORM 课程。
这是我拥有的文件的调度结构。
dispatch.html 代码是
<html>
<head>
<title></title>
<meta charset="utf-8" />
<script src="configuration.js"></script>
<script src="utils.js"></script>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script type="text/javascript">
include_script(DispatchRoot + "/scripts/client-driver.js");
include_script(DispatchRoot + "/scripts/client-loader.js");
</script>
</head>
<frameset id="dispatch_frameset" rows="0,*" frameborder="0" framespacing="0" border="0" onload="DispatchStart('dispatch_course_frame')"
onunload="DispatchUnload()">
<!-- We set the src to blank.html to avoid security warnings in IE6 / IE7 when launching in HTTPS -->
<!--<frame id="dispatch_content_frame" name="dispatch_content_frame" src="blank.html" />-->
<frame id="dispatch_loading_frame" name="dispatch_loading_frame" src="blank.html" />
<frame id="dispatch_course_frame" name="dispatch_course_frame">
</frameset>
<noframes>
Your browser must be able to view frames for this content to display.
</noframes>
</html>
client-driver.js 是一个有助于在 LMS 和 SCORM 之间建立通信的文件。而 client-loader.js 文件是通信发生的地方。我正在使用以下代码
var completionStatus = Getvalue("cmi.core.lesson_status");
if (completionStatus == "not attempted") {
SetValue("cmi.core.lesson_status", "incomplete");
}
SetValue("cmi.core.exit", "suspend");
console.log(Getvalue("cmi.core.student_id"));
console.log(Getvalue("cmi.core.student_name"));
var entry = Getvalue("cmi.core.entry")
console.log(entry);
if (entry == "resume") {
var val = Getvalue("cmi.suspend_data");
SetValue("cmi.suspend_data", val);
}
else {
SetValue("cmi.suspend_data", "2");
}
当用户关闭 Moodle LMS 窗口时,此代码执行
SetValue("cmi.core.exit", "suspend");
api.LMSCommit("");
api.LMSFinish("");
但是下次我无法恢复课程。谁能告诉我我做错了什么?如何从最后一张幻灯片恢复课程。?