Storyline HTML5 Bug - Losing Viewed Slides data on re-launch

Feb 11, 2014

We are going to implement Storyline HTML5 on the iPad for our employees soon. Therefore, I've beat up on it pretty well. Along the way, I discovered that when you accomplish some progress (slides viewed), then exit the lesson and return a very disturbing result occurred. The previously viewed slides appeared to have been restored on re-launch. However, if I exited and re-entered again, those previously viewed slides we no longer marked as viewed. This also affected the overall completion of the lesson when based on slides viewed.

Again, the scenario:

  1. Launch the lesson and view a few slides then exit.
  2. Re-enter lesson and observe previously viewed slides show viewed in the Outline Menu.
  3. Exit the lesson prior to completing.
  4. Re-enter the lesson and notice that the slides are no longer displayed as viewed in the Outline Menu.

Would someone please confirm that they are observing the same outcome? I simply want to verify with the community that this is a consistent issue that deserves immediate attention by the developers at Storyline.

*** I WAS ABLE TO FIND A FIX FOR THIS. IF YOU RESPOND TO THIS POST WITH A POSITIVE ACCOUNT OF THIS ISSUE, I WILL PROVIDE THE FIX. ***

My providing a fix to the community should not preclude the developers of Storyline to delay in publishing an update to properly correct this BUG.

The HTML5 published content is coming along very nicely. Thank you for Release 5. Let's see it through and stamp out the remaining bugs so users can access the content on iPad reliably.

- Jamie

4 Replies
Ashley Terwilliger-Pollard

Hi Jamie,

I'm curious what the fix was, but would also like to take a look at your Storyline course to test this out myself. Are you not receiving a prompt to resume or always resuming and the course just doesn't resume to where you left off on the second try? 

If you're not able to share the file here with us let me know and I'll send you directions to share with me privately. 

Jamie Smith

The course resumes fine. It's really just a matter of tracking the viewed slides properly which can impact user completion of the lesson if it's based on slides viewed.

As previously stated, on resume the previously slides viewed are restored in the Outline menu and styled as being visited making it seem as though all is well. However, if you exit the lesson again and re-enter, those slides are no longer marked as viewed.

Upon some extensive analysis of the LMS debug information and watching the suspend_data being restored and saved back to the LMS, it was apparent that the viewed slides were not being retained on resume. This is a very consistent behavior

among all presentation I published. Try it yourself with any Storyline HTML5 presentation and let me know if you get the same results.

I dug into the player_compiled.js file located in the mobile folder of the published presentation and discovered that there is a step left out when resuming and restoring suspend data that involves the tracking of viewed slides. I was led to this javascript file using some javascript profiling in the Chrome browser.

I have already been in touch with your support team and submitted my fix. I was told that it would be passed on to the development team to consider. The fix involves either a complete replacement of the player_compiled.js file with a modified version or modifying the published version of the file. To my knowledge this file is the same for each published presentation. However, I have no confirmation of that.

Jamie Smith

For reference and those interested in the technical aspect of it:

When a lesson is resumed from LMS data it calls a function named 'updateFromCompactData'. This function walks through the suspend_data and populates the player with the associated information such as slides viewed. In the case of slides viewed, the player needs to track which slides are viewed in order to reverse this process when building the suspend_data prior to returning to the LMS for storage.

In the HTML5 content, the player displays which slides have been viewed in the Outline using the 'markVisited' function. This function simply changes the style of the respective slide within the Outline to show that it has been viewed. However, there is one more step that should be taken to ensure the player stores the viewed information for later when it compiles the list of viewed slides to be incorporated in future suspend_data. That's what the 'restoreViewedState' function does. It adds the respective slide everywhere that it should be tracked within the player as being viewed and completed.

Below is a small snippet of what was added to the code. Just after the 'markedVisited' function when looping through the previously viewed slides, I inserted the 'restoreViewedState' function. This fixed the problem.

        player.slideList.markVisited(j);

        // added by jamie

        player.restoreViewedState(j);

Ashley Terwilliger-Pollard

Thanks Jamie for the update and letting me know you had a case going with John as well (# 00384185 for my reference). I also see that he reported it to our QA team, and I'll follow along with your case as well so that I can update the thread if more information becomes available. Thank you as well for finding and sharing a fix, I'm certain others will appreciate it. 

This discussion is closed. You can start a new discussion or contact Articulate Support.