* @returns {Function}
*/
- launchAppOnTV(pkgId, appId, callback) {
- const xhr = new XMLHttpRequest();
-
- var self = this;
- var retFunc = function() {
- var data = {
- pkgId: pkgId,
- appId: appId
- };
- self.sendDataToApp(pkgId, appId, data, callback);
+ launchAppOnTV(pkgId, appId, action, callback) {
+ var data = {
+ pkgId,
+ appId,
+ action
};
- return retFunc;
+ return this.sendDataToApp('app', data, callback);
};
/**
* @param {Object} data
* @param {Function} callback
*/
- sendDataToApp(pkgId, appId, data, callback) {
+ sendDataToApp(api, data, callback) {
const xhr = new XMLHttpRequest();
- // add tv app id
- data.appId = appId;
- data.pkgId = pkgId;
-
xhr.onreadystatechange = function() {
if (xhr.readyState === xhr.DONE) {
if (xhr.status === 200 || xhr.status === 201) {
}
}
}
- xhr.open('POST', serverURL + ':' + serverPort + '/app');
+ xhr.open('POST', `${serverURL}:${serverPort}/${api}`);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify(data));
};
var path = null;
var currentD2DAppId = null;
-function runApp(appId, port, callback) {
+function runApp(appId, port, action, callback) {
function onRunningAppsContext(contexts) {
var isRunning = false;
for (var i = 0; i < contexts.length; i++) {
}
}
- if (isRunning && currentD2DAppId === appId) {
+ if (isRunning && currentD2DAppId === appId && !action) {
callback();
} else {
const urlParam = require('./service').getUrlParam();
const urlObj = url.parse(urlParam, true).query;
urlObj.target = is_tv ? 'tv' : 'fhub';
- const appControl = new tizen.ApplicationControl(
- "http://tizen.org/appcontrol/operation/default", null, null, null,
- [new tizen.ApplicationControlData(
- "http://tizen.org/appcontrol/data/launch_port", [port]
- ),
- new tizen.ApplicationControlData(
- "http://tizen.org/appcontrol/data/url_parameter", [JSON.stringify(urlObj)]
- )]
- );
-
+ var appControl;
+ if (action) {
+ console.log('action : ' + JSON.stringify(action));
+ appControl = new tizen.ApplicationControl(
+ "http://tizen.org/appcontrol/operation/eden_resume", null, null, null,
+ [new tizen.ApplicationControlData(
+ "PAYLOAD", [JSON.stringify({ values: action }) ]
+ ),
+ new tizen.ApplicationControlData(
+ "SkipReload", ['No']
+ )]
+ );
+ } else {
+ appControl = new tizen.ApplicationControl(
+ "http://tizen.org/appcontrol/operation/default", null, null, null,
+ [new tizen.ApplicationControlData(
+ "http://tizen.org/appcontrol/data/launch_port", [port]
+ ),
+ new tizen.ApplicationControlData(
+ "http://tizen.org/appcontrol/data/url_parameter", [JSON.stringify(urlObj)]
+ )]
+ );
+ }
currentD2DAppId = appId;
tizen.application.launchAppControl(appControl, appId, callback);
}
path = req.body.pkgId ? req.body.pkgId : path;
var appId = req.body.appId;
var pkgId = req.body.pkgId;
+ var action = req.body.action;
var name = appId.split(".")[1];
var appRouter = appRouters.filter(function (router) {
return router.path === path;
}
console.log('[GlobalWebServer] appProxy.post ', path, action);
// run app
- runApp(appId, port, function () {
+ runApp(appId, port, action, function () {
res.send({ port: port });
});
}