webOS API
The webOS API provides methods for retrieving TV-specific information and settings.
Methods of this API is compatible with methods of the webOS.js library used on the previous versions of webOS TV. If you have used methods of webOS.js to implement your app, we recommend that you replace the webOS.js library with the webOSTV.js library.
Type | Name | Description |
---|---|---|
Member | libVersion | Holds properties representing the build version of the webOSTV.js library. |
platform | Holds properties representing the platform identification of webOS variants. | |
Method | deviceInfo | Returns the device-specific information. |
fetchAppId | Returns the app ID of the caller app. | |
fetchAppInfo | Returns the appinfo.json data of the caller app with a cache saved to webOS.appInfo. | |
fetchAppRootPath | Returns the full URI path of the caller app. | |
platformBack | Emulates the back key of the remote controller to move backward 1 level. | |
systemInfo | Returns the system-specific information. | |
keyboard.isShowing | Checks whether the virtual keyboard is visible. | |
service.request | Creates and sends a service request to the system of the webOS TV. |
libVersion
Description
A member representing the build version of the webOSTV.js library.
Properties
None
Example
if (Number(webOS.libVersion.split('.')[0]) > 0) {
// use webOSDev APIs
}
See also
- None
platform
Description
A member representing the platform identification of webOS variants.
Properties
Name | Type | Description |
---|---|---|
tv | Boolean | Indicate whether the platform identification is webOS TV. If the platform identification is not webOS TV, undefined is returned.
|
Example
if (webOS.platform.tv === true) {
// calls TV specific service APIs
} else {
console.log('This device is not TV.');
}
See also
- None
deviceInfo
Description
Returns the device-specific information regarding the TV model, OS version, SDK version, screen size, and resolution.
Parameters
Name | Type | Description | Required | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
devicecallback(info) | Function | The function to call once the information is collected.
| Yes |
Call returns
Returns undefined.
Example
webOS.deviceInfo(function (device) {
if (device.modelName.indexOf('32LB') > -1) {
// do something
}
var version = device.version.split('.');
if (Number(version[0]) > 3 || Number(device.versionMajor) > 3) {
// do something
if (Number(version[1]) > 2 || Number(device.versionMinor) > 2) {
// do something
if (Number(version[2]) > 13 || Number(device.versionDot) > 13) {
// do something
}
}
}
var sdkVersion = device.sdkVersion.split('.');
if (sdkVersion[0] === '3') {
// do something
}
if (device.screenWidth === 1920 && device.screenHeight === 1080) {
// do something
}
if (device.uhd && device.uhd === true) {
// shows UHD contents
}
if (device.uhd8K && device.uhd8K === true) {
// shows 8K UHD contents
}
if (device.oled && device.oled === true) {
// do something
}
if (device.ddrSize) {
var ddrSize = device.ddrSize.split('G')[0];
// do something
}
if (device.hdr10 && device.hdr10 === true) {
// play HDR10 contents
}
if (device.dolbyVision && device.dolbyVision === true) {
// play Dolby Vision contents
}
if (device.dolbyAtmos && device.dolbyAtmos === true) {
// play Dolby ATMOS contents
}
if (device.brandName && device.brandName === "LG") {
// Do something
}
if (device.manufacturer && device.manufacturer === "LG Electronics") {
// Do something
}
if (device.mainboardMaker && device.mainboardMaker === "LG") {
// Do something
}
if (device.platformBizType && device.platformBizType === "LG") {
// Do something
}
if (device.tuner === false) {
// The device is tunerless
}
});
See also
fetchAppId
Description
Returns an app ID of an app calling this method.
Parameters
None
Call returns
Name | Type | Description |
---|---|---|
appId | String | The app ID |
Example
var appId = webOS.fetchAppId();
if (appId.length !== 0) {
webOS.service.request('com.webos.service.drm', {
method: 'load',
parameters: {
appId: appId,
drmType: 'playready',
},
onSuccess: function (res) {
// sendDrmMessage
},
onFailure: function (res) {
// error handling
},
});
} else {
console.error('Getting application ID failed.');
}
See also
fetchAppInfo
Description
Returns the appinfo.json data of the caller app with a saved cache.
Parameters
Name | Type | Description | Required | ||||||
---|---|---|---|---|---|---|---|---|---|
appinfocallback | Function | The function to be called upon completion
| No | ||||||
path | String | An optional relative file path to read appinfo.json. The file name (appinfo.json) must be included in the file path.
| No |
Call returns
Returns undefined.
Example
var path = webOS.fetchAppRootPath();
if (path.length !== 0) {
// It works only in the case of packaged application
webOS.fetchAppInfo(function (info) {
if (info) {
var version = info.version && info.version.split('.');
if (Number(version[0]) > 1) {
// different implementation
}
} else {
console.error('Error occurs while getting appinfo.json.');
}
}, path + 'appinfo.json');
} else {
console.error('Getting application root path failed.');
}
See also
fetchAppRootPath
Description
Returns the full URI path of the caller app.
Parameters
None
Call returns
Name | Type | Description |
---|---|---|
uri | String | The app's URI path where the app is located |
Example
var path = webOS.fetchAppRootPath();
if (path.length !== 0) {
// It works only in the case of packaged application
webOS.fetchAppInfo(function (info) {
if (info) {
var version = info.version && info.version.split('.');
if (Number(version[0]) > 1) {
// different implementation
}
} else {
console.error('Error occurs while getting appinfo.json.');
}
}, path + 'appinfo.json');
} else {
console.error('Getting application root path failed.');
}
See also
- None
platformBack
Description
Emulates the back key of the remote controller to move backward 1 level. On webOS TV 6.0 or higher, a popup asking whether to exit the app is displayed, and on webOS TV 5.0 or lower, the Home launcher is launched. For more information, see Back Button .
Parameters
None
Call returns
None
Example
function initPage() {
document.querySelector('#refresh').addEventListener('click', function () {
window.location.reload();
});
...
document
.querySelector('#platformBack')
.addEventListener('click', function () {
webOS.platformBack();
});
}
See also
- None
systemInfo
Description
Returns the system-specific information regarding country, service country, and timezone.
Parameters
None
Call returns
Name | Type | Description |
---|---|---|
country | String | The country that TV broadcasts. If the value does not exist, undefined is returned. |
smartServiceCountry | String | The country where the Smart service is provided. If the value does not exist, undefined is returned. |
timezone | String | The time zone that TV broadcasts. If the value does not exist, undefined is returned. |
Example
var sysInfo = webOS.systemInfo;
if (
(sysInfo.country && sysInfo.country === 'KOR') ||
(sysInfo.smartServiceCountry && sysInfo.smartServiceCountry === 'KOR') ||
(sysInfo.timezone && sysInfo.timezone)
) {
// shows Korean contents
}
See also
keyboard.isShowing
Description
Checks whether the virtual keyboard is visible.
On the previous version of webOS TV that does not support this property, undefined is returned.
Parameters
None
Call returns
Name | Type | Description |
---|---|---|
show | Boolean | Indicates whether the virtual keyboard is displayed or hidden.
|
Example
if (webOS.keyboard.isShowing() === true) {
// other div style fade out
} else {
console.log('Keyboard is hidden or this API is not supported.');
}
See also
- None
service.request
Description
Creates and sends a service request to the system of the webOS TV.
Parameters
Name | Type | Description | Required | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
uri | String | The service URI. It accepts the normal service URI format, as well as the extended format with the service method included. | Yes | ||||||||||||||||||||||||||||||||
param | Object | Service request options. Properties
| No |
Call returns
Name | Type | Description | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
requestObject | Object | Resulting request object. This object can be used to cancel subscriptions. Properties
|
Complete Callback Returns
Name | Type | Description |
---|---|---|
response | Object | The JSON object containing the service's response data; either one of proper response data or error details. |
Success Callback Returns
Name | Type | Description |
---|---|---|
response | Object | The JSON object containing the service's response data |
Failure Callback Returns
Name | Type | Description |
---|---|---|
error | Object | The JSON object containing the service's error details. |
Example
function callSystemService() {
webOS.service.request('luna://com.palm.systemservice', {
method: 'time/getSystemTime',
parameters: { subscribe: true },
onSuccess: function (res) {
console.log('system time suc', res);
},
onFailure: function (res) {
console.log('system time fail', res);
},
});
}
See also
- None