App bundles are zip compressed archives containing the following files:
policyAppIdof this application
appHMITypeof the WebEngine application
appHMITypes of the WebEngine application
sdl.js contains the SDL JS library used to interact with SDL Core.
All other HTML / JS files used to run the application.
In order for a WebEngine application to appear on the SDL app list, the HMI must notify SDL Core about newly installed WebEngine applications by sending a
BasicCommunication.SetAppProperties. The properties sent in this request will be stored in Core's policy table and the information will stay persistent between ignition cycles.
Not all parameters in the
AppProperties struct apply to WebEngine Apps. WebEngine Apps should omit
When the user activates a WebEngine application, the HMI will use information from the manifest.js to launch the entrypoint HTML (our development HMIs do this by creating an invisible iframe). Here, the app will begin execution on the head unit and eventually call
RegisterAppInterface. When the HMI receives an
OnAppRegistered notification signalling that the WebEngine app has successfully registered, the HMI should then send Core an
In order to support the WebEngine feature, a WebSocket server transport was added to SDL Core. This contrasts to the WebSocket client transport in SDL Core that is used by Java Cloud applications. When the HMI launches a WebEngine application, it will provide Core's hostname and port as query parameters to the entrypoint of the WebEngine application. This transport supports both secure and non-secure WebSocket communication, which is also determined by a query parameter passed to the entrypoint HTML file of the WebEngine application.
These are the accepted values for the sdl-transport-role parameter:
Example URL with query parameters:
WebSocket server transport will only run if either all three of these are valid or if none are provided:
If all three are provided, SDL Core will use WebSocket Secure, otherwise, Core will use regular WebSocket communication. These values can be set in the smartDeviceLink.ini configuration file.
Please refer to the following diagram which describes the hierarchy of transport components for the WebSocket Server transport adapter.
Please refer to the following diagram that describes the initialization sequence when SDL Core is started.View on GitHub.com