Custom Javascript Content in Rise
Jun 03, 2020
Greetings Rise Community,
I am a JS developer trying to understand which options are available for embedding my own custom JS content in the rise.articulate.com platform.
Examples:
- Custom JS drag and drop interactions
- Choose your own adventure branching scenarios
- Branching video player
- etc..
I understand there are two options for embedding 'custom content' in the player:
- Create a Storyline interaction > publish to Review 360 platform > Insert into module as a Storyline Interactivity Block. From what I understand, this method enables me to block learner progress until a learner completes the Storyline interaction.
- Host my interactions on my own server, embed them into a page using the Multimedia > Embed block, then inserting my iframe code in the Content pane.
I have been successful integrating my own custom content using option 2, however, my interactions do not 'talk' to the Rise course player in any way. I'm interested to know the following:
- Is there a way to block learner progress until they have completed a custom JS interaction?
- Is there an API or method call that I can use in my interactions to unlock the next page of the course?
- Is there any discussion to include this type of behavior in forthcoming releases?
Thanks in advance for any replies!
9 Replies
Hi Scott. Nice work! Unlike Storyline blocks, web content that is included using the Embed block won't talk to the Rise player. There isn't a way to see that the external content has been completed.
We don't have plans right now to enable tracking of external web content in the embed block, so for now, the Storyline block might be the better option for you if that's a requirement.
Thanks for your reply Crystal
Thinking out loud:
I'll experiment a little with that.
Regardless, it would be great to be able to target completion from a media > embed frame by calling a method like window.parent.completePage(). I'd rather have Rise-sanctioned solution that a hack or workaround that may stop working eventually as the platform evolves.
Interested to know if anyone else has had luck with what I'm trying to accomplish..
Hi Scott,
have you managed to go anywhere with this because i am also looking for a more elegant solution for a modern age. with your option 1, would that storyline published course still trigger the execute javascript command? because from my tests it doesnt seem to work.
https://community.articulate.com/discussions/articulate-storyline/prevent-progression-until-inserted-web-object-has-been-completed
As for getting web content to respond to the player, it works if the course is storyline based as per this discussion. But like you, my course has been created in Rise. and i need a way to make the rise - published to web - content to respond to a player.
is not the work around to use the Storyline embed and in storyline the iframe can via javascript talk to storyline? its on my todo list to try but have not so far.
I have a leader board that I built in Storyline. It uses JavaScript to query the xAPI statements in a Learning Records Store and find the learner names and scores associated with the specific course, sort them and assign the values to Storyline variables. I'd like to use it in a Rise course. I exported the Rise course and added the xapiwrapper and my .js file that defines my function to the index.html file in the Rise course, The function gets defined, but it is never executed by the Storyline slide. Is this because the Storyline slide is inserted from Review 360, which doesn't really like to execute JavaScript? Has anyone else gotten something like this to work in Rise using JavaScript and Storyline variables?
Never mind. Solved it.
Hi James, can I have the online resources for your custom JS in Rise 360? Our team are also trying to add custom JS to send custom xAPI statement to an LRS. Any help is highly appreciated! Thanks
Hi folks! Just in case James isn't subscribed to this thread anymore, feel free to reach out to him directly by using the Contact me option in his profile.