HTML Application SDK
A1.8
|
Date | Owner | Version | Reason & Change |
---|---|---|---|
05 April 2019 | Ece Oktay | A1.1 | Added definition for Screenshot.takeScreenshot() method screenshot_mode argument modes. |
02 May 2019 | Ece Oktay | A1.2 | Updated definition for Screenshot.takeScreenshot() method. |
15 May 2019 | Ece Oktay | A1.3 | Added FileManager.saveFile() method description. |
17 May 2019 | Ece Oktay | A1.4 | Updated KeySet.setValue() method description. |
27 Jun 2019 | Ece Oktay | A1.5 | Updated GeneralSettings.setTVMode() method description. |
08 Jul 2019 | Ece Oktay | A1.6 | Added StorageManager.copyAsync() method. |
23 Oct 2019 | Mehmet Arif Cengiz | A1.7 | Updated documentation display descriptions. |
31 Dec 2019 | Ece Oktay | A1.8 | Added SocketManager plugin. |
Opera SDK V4.9 which has Chromium M53 in its core is the last stable version used in displays. Opera is upgrading itself continuously to support for working new features with the Opera Devices SDK.
Developers can use all the debug tools such as web inspector while they are developing HTML5, CSS3 applications. They can make a connection between their PC and display browser then they can debug applications remotely. (Note: They need to be in same network.)
Also, Opera has a TV emulator that allows web developers to test HTML5 application running the Opera Devices SDK. For more information: http://www.operasoftware.com/products/tv/tv-emulator
Opera browser that is mentioned above can work on all products. Here is some details platform;
Device has ~170 MB free disk capacity and ~690 MB heap size. This free storage area is using for various purposes. ~120 MB is separated for OAD operation. Opera browser is able to allocate maximum 110 MB from remaining area. Note that; if OAD starts, Opera cannot use its storages.
DatabaseManager plugin stores its data in persistent storage whose free size is about 20MB.
Opera has ~25 MB max disk cache size which is maximum limit of the HTTP data that will be cached on disk, but note that; the amount of cached data is not the same as the amount of disk space it will use.Opera sets local storage limit and persistent storage limit to ~10 MB. This memories is shared by all web apps running in the browser.Opera also sets temporary storage limit to ~65 MB. This memory is also shared by all web apps running in the browser, but it is important that each app can at most use up to 20% of this storage.
Opera browser “App Cache” uses %20 of temporary storage limit. Also, it can store maximum ~3000 cookie. To meet the limit, cookies are removed (oldest first). Cookies accessed in last 30 days are not removed regardless of max cookie value.
There are 3 ways for starting developed HTML5 based applications on products.
After these operations, digital signage products will open with developed HTML/JS applications at startup.
After connecting the display to the PC using a serial cable or telnet, you can open the HTML tests using the terminal. You can type SETURL <load url="URL_PATH"> command or OPENURL "URL_PATH" command to open HTML page. URL_PATH can be "http://" protocol. Note that "file://" protocol is not permitted. OPENURL just starts the URL, but SETURL deselects the current channel and then opens the web page.
Note; This command will create a browser window that has 1920x1080 resolution.
Developed applications can be opened by “starturl.txt” file. "starturl.txt" file should only contain a URL to the application. The URL should be on the first line of the text file. This file should be put into the root folder of a USB. Developer should do USBOPERATIONS for updating starturl correctly. In order to do that, one should enter the menu and then enter the numbers “4725” using the remote controller when the display is opened. “Service Menu” screen will be seen. “USB Operations” which is the button at the bottom should be chosen. This will load the application link that was written in “starturl.txt” file into the display. After closing the “Service Menu” screen, the application link will be opened when the Internet key button on the remote controller is pressed.
Note; This command will create a browser window that has 1920x1080 resolution.
Display almost has full functionality for running HTML5 based UI applications. Developed applications are able to communicate with device.
Firstly, some mandatory features such as OIPF, HBBTV standards should be supported to establish this communication. Platform supports big part of OIPF R2-Volume-5 v2.3 and HBBTV 1.5 standards.
Also, in some cases, applications might need custom functionalities that OIPF or HBBTV does not have. For these situations, there are some custom plugins to manage device. You can find details in Supported API Table
For OIPF specifications:
http://www.oipf.tv/web-spec/volume5.html
For HBBTV specifications:
https://www.hbbtv.org/wp-content/uploads/2015/07/HbbTV-specification-1-5_Aug2012.pdf
Note: OIPF specifications cover HBBTV standards
ApplicationManager custom plugin can be used for creating new windows or can be managed existing windows with it.
Energy saving mode and 3D information can be queried, other settings are not implemented yet.
UI, Audio and Subtitle settings can be managed.
OIPF ParentalRating functionality can be used. Internet lock status can be retrieved with TVPreferences plugin. Child lock status can be retrieved from ChildLock Plugin
There is a custom plugin for Reminders, OIPF functionality can be used for Records.
There is a custom plugin object for DateTimeSettings.
There is custom plugin object for NetworkManager.
There is custom plugin object for SoftwareUpdateController.
Active standby, Auto Display Off, HbbTV, Display mode, Mheg features can be managed by custom plugins.
It can be managed with OIPF Video Broadcast object
OIPF supports.
OIPF supports.
OIPF Download Manager is not supported. But, browser’s (Opera) File System API can be used for downloading files small enough to fit in the device’s internal storage. Please see the "Platform Specifications" section for storage limitations. For larger files, e.g, video files, please use the CustomDownloadManager plugin which writes to a connected USB drive instead of the device's internal storage.
Records or videos can be played with video/mp4 objects.
StandbyController custom plugin can be used. This plugin provides function to query whether display is in active standby or not. Also, it can enter/quit active standby state.
InputManager custom plugin can be used.
Volume settings can be managed via Video Broadcast object or SoundSettings Custom Plugin can be used.
DatabaseManager Custom plugin can be used to save key/value pairs.
The internal web server can be used to access data served from usb disks. /mnt/ path is served. (e.g http://localhost/mnt/hd0a/myapplication.html)
OIPF plugins throw DOM exceptions with three different messages for different cases. Message types are listed below