D0301
HTML Application SDK  A1.8
HTML App Supported Functionalities - SW Specs Overview

Table of Contents

Revision History

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.

Abbrevations

Opera Browser

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

Platform Specifications

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.

SETURL Testtool Command

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.

Starturl.txt file

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.

Supported Display Functionalities

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

Summary of Capabilities

Opera Window Management

ApplicationManager custom plugin can be used for creating new windows or can be managed existing windows with it.

Picture Settings

Energy saving mode and 3D information can be queried, other settings are not implemented yet.

Language Settings

UI, Audio and Subtitle settings can be managed.

Parental Settings

OIPF ParentalRating functionality can be used. Internet lock status can be retrieved with TVPreferences plugin. Child lock status can be retrieved from ChildLock Plugin

Timers

There is a custom plugin for Reminders, OIPF functionality can be used for Records.

Date Time Settings

There is a custom plugin object for DateTimeSettings.

Network Settings

There is custom plugin object for NetworkManager.

Software Update

There is custom plugin object for SoftwareUpdateController.

General Settings

Active standby, Auto Display Off, HbbTV, Display mode, Mheg features can be managed by custom plugins.

Channel List

It can be managed with OIPF Video Broadcast object

Channel Info

OIPF supports.

Disc Info

OIPF supports.

Download Content

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.

Playback

Records or videos can be played with video/mp4 objects.

Power Management

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.

Source Input Management

InputManager custom plugin can be used.

Volume Management

Volume settings can be managed via Video Broadcast object or SoundSettings Custom Plugin can be used.

Database Usage

DatabaseManager Custom plugin can be used to save key/value pairs.

Internal Server

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)

Extra Features

OIPF Exceptions

OIPF plugins throw DOM exceptions with three different messages for different cases. Message types are listed below