const TIZEN_WEB_APP_SHARED_RESOURCES = 'shared/res/';
const WEBCLIP_DIRECTORY = 'webclip';
const WEBCLIP_MANIFEST = 'manifest.json';
-const is_tv = webapis.cachedProperty !== undefined;
+const is_tv = webapis.getProfile() === 'TV';
const local_ip = '127.0.0.1';
const non_ip_list = [
'1',
webapis.mde.launchBrowserFromUrl(req.body.url);
});
+ if (is_tv) {
+ const tvService = require('./tv/service_tv');
+ tvService.initialize(app);
+ }
+
httpserver = http.createServer(app);
httpserver.listen(g.port, function() {
console.log(`Device home is running on port ${g.port}`);
--- /dev/null
+const express = require('express');
+
+let virtualKeyGeneratorInitialized = false;
+let virtualMouseInitialized = false;
+const keyMap = {
+ 'Ambient': 530,
+ 'ArrowLeft': 113,
+ 'ArrowRight': 114,
+ 'ArrowUp': 111,
+ 'ArrowDown': 116,
+ 'Back': 9,
+ 'ChannelDown': 95,
+ 'ChannelUp': 96,
+ 'HomeUI': 71,
+ 'OK': 36,
+ 'VolumeDown': 75,
+ 'VolumeUp': 76,
+ 'WebBrowser': 158,
+};
+
+let webapis = global.webapis;
+
+function initializeVirtualKeyGenerator() {
+ if (!virtualKeyGeneratorInitialized) {
+ virtualKeyGeneratorInitialized = true;
+ webapis.mde.initVirtualEventGenerator(0);
+ }
+ return virtualKeyGeneratorInitialized;
+}
+
+function initializeVirtualMouse() {
+ if (!virtualMouseInitialized) {
+ virtualMouseInitialized = true;
+ webapis.mde.initVirtualEventGenerator(1);
+ }
+ return virtualMouseInitialized;
+}
+
+module.exports.initialize = (app) => {
+ app.post('/sendKey', express.json(), (req, res) => {
+ if (!initializeVirtualKeyGenerator()) {
+ res.send({
+ result: 'mde API is not enabled'
+ });
+ return;
+ }
+
+ var keyName = req.body.keyName;
+ let keyCode = keyMap[keyName];
+ console.log(`keyName : ${keyName}, keyCode : ${keyCode}`);
+ webapis.mde.generateVirtualKeyEvent(keyCode, 2);
+ res.send({
+ result: 'ok'
+ });
+ });
+
+ app.post('/sendString', express.json(), (req, res) => {
+ var inputString = req.body.inputString;
+ console.log(`inputString : ${inputString}`);
+ webapis.mde.updateRemoteInput(inputString);
+ res.send({
+ result: 'ok'
+ });
+ });
+
+ app.post('/selectString', express.json(), (req, res) => {
+ webapis.mde.selectRemoteInput();
+ res.send({
+ result: 'ok'
+ });
+ });
+
+ app.post('/mouseMove', express.json(), (req, res) => {
+ if (!initializeVirtualMouse()) {
+ res.send({
+ result: 'mde API is not enabled'
+ });
+ return;
+ }
+ var dx = req.body.dx;
+ var dy = req.body.dy;
+ console.log(`dx : ${dx}, dy : ${dy}`);
+ webapis.mde.generateVirtualMouseMoveEvent(dx, dy, 3);
+ res.send({
+ result: 'ok'
+ });
+ });
+
+ app.post('/previewData', express.json(), (req, res) => {
+ let pkgId = req.body.pkgId;
+ let previewData = '{ sections: [] }';
+ if (webapis && webapis.getPreviewData) {
+ previewData = webapis.getPreviewData(pkgId);
+ } else {
+ console.error('webapis.getPreviewData is unsupported.');
+ }
+ res.send({
+ result: JSON.parse(previewData)
+ });
+ });
+
+}
\ No newline at end of file
return { images: 'no' };
}
}
+ global.webapis.getProfile = () => {
+ if (wrt.tv) return 'TV';
+ else if (wrt.da) return 'DA';
+ else return 'common';
+ }
Object.defineProperties(global.webapis, {
getCallerAppId: { writable: false, enumerable: true },
getPackageId: { writable: false, enumerable: true },
getServiceId: { writable: false, enumerable: true },
postPlainNotification: { writable: false, enumerable: true },
getPreviewData: { writable: false, enumerable: true },
+ getProfile: { writable: false, enumerable: true },
});
this.initMDEWebapis();
this.initEdgeWebapis();