This is a slightly refreshed approach to the plugin mentioned by the SAP Documentation. I wanted to have a look at how FLP Plug-In development works in general.
For the purpose or using this Repository as a starting point at any time, I've kept the getRenderer function as well as some of the dummy code from the generator.
This Plug-In is supposed to keep the FLP sessions alive by sending small (HTTP HEAD) requests in an interval to the SAP system. Be aware though that before using something like Plug-In development to do this, there are various ways to go about this. One approach could be using the native "Gateway Time-Out Warning" settings explained here. Also mentioned in SAP OSS Note 3248472 and 2955208.
It'd be basically the same as described here.
Note
- When both the application URL and the shell plugin URL are the same, it's not possible to predict which prefix will be added to the URL – the application prefix or the shell plugin prefix.
- When two shell plugins have the same URL, it's not possible to predict which shell plugin <app_name> prefix will be added to the URL, because the system cannot determine which shell plugin initiated the request.
I'm not sure how to 'Make sure that your plug-in is robust if more than one instance is loaded'. Is it something that is done from within the Plug-In scope itself or do we have to go into the window scope here (i.e. the "sap-ushell-config"?). You'd have to take a look into the SAP Standard plugins or other comparable ones.
As the docs state:
Even if your plug-in implementation is a singleton by nature, multiple instances might be created due to configuration, and your plug-in must be able to handle this in a robust way.
If you know the answer: DM me anywhere or open an Issue/PR. I'd love to know.
Implementation based on this SO Answer and SAP itself (see below image)

This project has been generated with 💙 and easy-ui5
Note: Some links are BW4HANA related as I find this version of the documentation way better (it even includes an interactive image!). Be aware of the platform differences when opening the links.
- Extending the Launchpad
- SAP Fiori Launchpad Documentation (Developing Plug-Ins)
- How are Plug-Ins loaded into the FLP?
- Promisify
_getRenderer - Fiori Renderer
- FLP Sandbox adjusted with the help of
- SAP Community Interactions based on the SAP Help sample
- Other Examples