Is there a way to launch a LTI from a link or button in the content page itself?
I'm not sure what you are trying to do, but here is one way you could do it.
When the LTI app is integrated into the course and placed in the Course Navigatoin, there will be a button or link exposed somewhere in the course itself, maybe in the left course menu or possibly in the right menu panel.
The simple solution is to inspect the HTML of that LTI application button and get the link information, and use that information to build your own button on your content page. I have tested this and it will work.
One obvious gotcha, if the LTI app is integrated for admin or faculty only, and you are trying to expose it for students, you will not get the result you want if the LTI provider is doing their job properly and inspecting the user roles.
I suppose one advantage to doing this is that you could remove the LTI app from the course navigation, so students would only see the LTI button on the pages that the LTI functions are related to.
Can you share the use case that you have in mind for this?
The short answer is "yes". I'm not sure of the details of how it works but Mediasite does this. When you add Mediasite content via the rich text editor in course pages, it inserts an iframe element into the page content that looks like this:
<iframe style="width: 1040px; height: 512px;" src="https://institution.instructure.com/courses/1234/external_tools/retrieve?borderless=1&url=https://mediasite.example.com/mediasite/Play/UniqueIdOfContent" width="300" height="150" />
The /external_tools/retrieve generates a form and returns it to the browser which then immediately submits it as an LTI launch request to mediasite.example.com.
The thing I'm not sure about is how that /external_tools/retrieve part works. I know it looks up what to do based on the domain name coming in via the url=* parameter. I'm not sure if the LTI tool has to register a handler in some way during tool installation or what.
Did you figure out how Mediasite does this? I implemented an LTI "video picker" in the editor but discovered it just inserts a static page. Not good enough. I was hoping it would send an LTI POST on page load. I need the student user ID of whoever is watching the video. Looks like this is what Mediasite has done. Grateful for any input.
Retrieving data ...