Forum Discussion

AdamTrosper's avatar
AdamTrosper
Community Member
8 years ago

lmsAPI Functionality in HTML5 Output

Hey all,

I've been searching through the forums and haven't been able to find anything solid.  I'm using Storyline 360, outputting to both HTML5 and Flash to cover my bases, since the audience doesn't have dedicated machines that they are taking this from.

I'm relying heavily on external Javascript that I wrote, which I have tested thoroughly in the Flash version, and it works fine.  But when it comes to the HTML5 version, it stops working.  I've proven that I'm able to get into the Javascript functions, like I would expect, but it appears that lmsAPI is no longer available to the course.

Are there any similar functions to those of the lmsAPI functions in the HTML5 output?  

Specifically, I'm looking for a way to do the following in HTML5:

  1. Get the StudentID from the LMS.
  2. Get the StudentName from the LMS.
  3. Manually call SetStatus("completed"); to pass a completion to the LMS on the last page of the course.
  • HilaBenBaruch's avatar
    HilaBenBaruch
    Community Member

    Thanks @Joseph for your quick reply! Yes, you described it well as this is exactly my problem - i'm trying to create a web object with dynamic parameters (the link I use inside the web object is to an external system and i'm trying to send it parameters related to the course the user came from).

    Do you have any idea how I can achieve that? what is AICC Course.ID data element? i'm not familiar with it - would it be possible to convert my SCROM files to AICC? if it has dynamic parameters related to the LMS course maybe I should try it?


  • HilaBenBaruch's avatar
    HilaBenBaruch
    Community Member

    Thanks again for replying so fast :)
    well- I am the external system! basically the whole flow is that the user starts inside the LMS, taking a course (currently built from SCORM files), then from within the SCORM I'm sending him to my system with a link - implemented inside a web object.
    I've contacted my LMS provider and it's not possible sending parameters from within the LMS (I literally tried every learning material possible) so I was thinking maybe sending parameters as urlParams from inside the SCORM (for example course id, learning object id, user id and such) so I can recognise who the user is (on my external system) and which course he came from (the LMS).

    Now, having said all that (hoping you're still here Adam) - I ran into your post noting AICC Course.ID - Is that referring to the LMS course? can the AICC hold parameters? 
    hope my question makes more sense now... 

  • AdamTrosper's avatar
    AdamTrosper
    Community Member

    Hi Hila,

    I think it's on an LMS-by-LMS basis exactly what information is provided to the course at runtime.  A lot of these fields are optional.

    I think my advice would be to change the tracking type to AICC, export it and upload it to your LMS to test it out.  You should be able to turn on Debug Mode, and test what will and won't be possible.

    There are 2 ways to turn debug mode on:

    1. In scormdriver.js, change:
      var SHOW_DEBUG_ON_LAUNCH = true;
    2. Using Dev Tools, you can call ShowDebugWindow()
  • Hi Matthew,

    Thanks for your code:

    function findLMSAPI(win) {
    if (win.hasOwnProperty("GetStudentID")) return win;
    else if (win.parent == win) return null;
    else return findLMSAPI(win.parent);
    }
    var lmsAPI = findLMSAPI(this);
    var name = lmsAPI.SCORM2004_GetStudentName();
    var nameArray = name.split(', ');
    var firstName = nameArray[1];
    var lastName = nameArray[0];
    var fullName = firstName + ' ' + lastName;
    var player = GetPlayer();
    player.SetVar("Name",fullName); 
    • Works like a charm!

     

    I would also love to GET the users Email from the LMS and SET this as a variable in SL. Is this possible? If so how?

     

    Kind regards

     

  • Found this topic via search and found out that it's only working when pusblished in SCORM.

    Now a days we publish everything in xAPI and then this code is not working. Can't figure it out, my javascript knowledge is not sufficient. Does anyone knows a solution for this?

    Besides the name, I like to retrieve information from our (LearningLocker) LRS and use it as a variable. Cannot find anything about this too. It seems to be black magic..,