Javascript Scorm 1.2 API

时间:2009-06-04 21:11:01

标签: javascript api scorm

我需要使现有的LMS Scorm 1.2兼容(仅限基本调用)。有没有人知道任何免费的脚本,以便不必从头开始写这个?

谢谢!

迈克尔

6 个答案:

答案 0 :(得分:4)

检查出来:http://scormpool.com/search/player.aspx

我能够下载他们的JavaScript文件并玩我自己的SCORM 1.2以及2004年的课程。

确保下载两个不同的API.js文件,一个用于1.2,另一个用于2004.

答案 1 :(得分:4)

我最近创建并提供了一个简单的SCORM(1.2)API,您可以免费下载和使用 - 您可以从这里下载:

https://github.com/gabrieldoty/simplify-scorm

答案 2 :(得分:3)

以前有一个名为“escorte4js”的示例SCORM运行时API实现,但它不再可以从其创建者的站点下载。您可以尝试搜索它,看看在应用程序中使用它的人是否仍然有他们可以发送给您的副本。

您还可以查看ADL示例运行时环境。它是一个开源应用程序,包含SCORM 1.2的参考实现。

还有一些开源LMS已经实施了SCORM 1.2(取得了不同程度的成功)。你可以看看Moodle,Illias或Sakai。

实现真正兼容的SCORM播放器比它最初看起来更难。实施规范只是第一步。 SCORM(或实际上任何互操作性标准)的真正诀窍是弄清楚其他人以不同方式解释标准的所有微妙方式,并确保您的实施足够灵活以适应所有这些差异。我最近写了一篇你感兴趣的blog post on that topic。查看同一站点的SCORM Explained侧下的更多免费SCORM资源。

麦克

答案 3 :(得分:2)

迈克尔,

好消息 - 大多数SCORM 1.2都是可选的(请参阅下面的细分文档)。现在,根据构建与购买,其他帖子是正确的。这可以在价格范围内,并且通常它们带有一些预先创建的平台代码,用于.NET / Java或其他。

我只构建了JavaScript部分,但它仍然要求您使用LMS后端服务器端脚本或API进行接口。

我将尝试快速分解这一切是如何运作的,并节省您一点时间阅读数百页的白皮书。

主要部分

  1. 服务器端您需要解压缩称为CAM或PIF包的SCORM包。这些包括小型便携式网站和imsmanifest.xml。
  2. 您需要能够解析此imsmanifest.xml,以便您可以提取内容使用的标题和资源。通常,您将这些内容共享到内容共享中,并可能将数据点存储到数据库或NOSQL选项中。
  3. 可能存在imsmanifest中包含的启动数据或启动参数,这些参数在SCO启动时添加。启动参数会像查询字符串一样被添加到URL中(index.html?name = value& sky = blue)
  4. 您必须在LMS中构建TOC视图或课程查看器。当学生点击所需的模块时,您需要获得SCORM 1.2的学生尝试。我使用JSON来支持CMI对象。有些内容暂停,有些内容只是启动和终止。
  5. 一旦您让学生尝试上课,您就需要公开" API" JavaScript运行时,并支持对学生尝试(CMI对象)的读/写。 SCORM对该对象的内部和外部有一些规则,Runtime API强制执行它。
  6. 有一些关键因素会触发您将学生尝试存储到后端服务器。我在LMSCommit上这样做。如果在每个LMSSetValue上执行此操作,您将开始在服务器上执行DDoS攻击。 DNS响应时间将最终滞后超过250毫秒,您的UX可能会很差。
  7. 一旦SCO触发LMSFinish,这是一个标志,你可以结束学生的尝试,并可能卸载SCO。
  8. 有更多细微的部分维持启动/重新启动内容。 LMS总时间(运行内容)。如果您选择支持目标和交互。如果您获得完全100%的支持,那么规范中就会有很少的问题。内容开发人员在将内容转移到其他LMS平台时不可避免地遇到其中一些内容。

    SCO

    SCO通常包含必要的JavaScript来查找" API"通过弹出窗口,新窗口,选项卡或IFRAME在LMS(在网页上)公开的变量。它有一个算法来扫描DOM。这就是为什么我上面告诉你,你的LMS需要学生尝试和#34; API"在启动SCO之前暴露。如果不这样做,很可能会导致SCO以非持久模式运行。

    SCORM 1.2的运行时

    您需要创建的JavaScript的基本概念。 您需要一个名为" API"的JavaScript函数对象。 这需要支持方法:

    • LMSInitialize()
    • LMSGetValue(键)
    • LMSSetValue(键,值)
    • LMSCommit()
    • LMSFinish(
    • LMSGetLastError()
    • LMSGetErrorString()
    • LMSGetDiagnostic()

    我在https://github.com/cybercussion/SCOBot/wiki上有一堆Wiki文档以及完整的SCORM 1.2,2004细分。     https://dl.dropboxusercontent.com/u/3459294/SCOBot-Content-API-Standards-Breakdown.pdf

    提示

    所以,如果你知道自己在做什么,那么你可以在几天到一周内站稳脚跟。没有任何知识,这可能需要几个月才能完善。正如我上面试图强调的那样,还有很多其他的依赖。 SCO,imsmanifest.xml,Runtime API,Student Attempt和所有管理,知道要监听或触发的内容。这是这项更大的努力花费$$的主要原因。尝试从像Moodle这样的开源项目或上面发布的一些古老链接中挑选和拉动只会让你到目前为止。老实说,他们中的大多数都与LMS紧密结合,你会花更多的时间来取笑它,而不仅仅是从头开始编写你自己的。 我从2009年到2015年建造了我的。我从使用Creative Commons许可证提供的内容API开始。我将Runtime API与它一起构建为单元测试的一种形式。之后,决定将其作为一个螺栓捆绑到其他人的平台,Android / iOS项目,通过USB Stick或Server的Electron / NodeJS应用程序。

    祝你好运。

答案 4 :(得分:1)

我找到了这一个http://www.jcasolutions.com/simple-scorm-lms-adapter,但它不是免费的($ 5.000); - (

答案 5 :(得分:0)

如果有人像我一样在这里登陆SCORM newb,请了解您的LMS可能会内置SCORM。你很可能摆弄SCORM,因为你的客户陷入黑暗时代。找出他们正在使用的LMS并安装它。然后,您(很可能)可以通过LMS访问SCORM 1.2 API。