From: DongHyun Song Date: Thu, 6 May 2021 08:32:45 +0000 (+0900) Subject: [Service] call onRequest() when app launched again X-Git-Tag: submit/submit/tizen_6.0/20210617.021127/20210617.021112~2^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ddf247a00bba0d25308ddb7aba6abb7b1d6904f8;p=platform%2Fframework%2Fweb%2Fwrtjs.git [Service] call onRequest() when app launched again When the app launched again, onRequest() event will be called to handle different appcontrol data. Change-Id: Ia80a6cfd8489318f9b7f42720209d79d76f375ae Signed-off-by: DongHyun Song --- diff --git a/wrt_app/common/service_manager.ts b/wrt_app/common/service_manager.ts index 14f0a874..2bed6a6e 100644 --- a/wrt_app/common/service_manager.ts +++ b/wrt_app/common/service_manager.ts @@ -17,8 +17,10 @@ function isStandalone() { } function createWorker(id: string, startService: string, filename: string) { - if (workers[id]) + if (workers[id]) { + workers[id].postMessage({ type: 'wake' }); return; + } workers[id] = new Worker(startService, { workerData: { @@ -51,7 +53,11 @@ export function startService(id: string, filename: string) { console.log(`startService - ${id}`); if (isStandalone()) { runner = require('../common/service_runner'); - runner.start(id, filename); + if (runner.getAppInstance()) { + runner.getAppInstance().onRequest(); + } else { + runner.start(id, filename); + } } else { let startService = `${__dirname}/service_runner.js`; createWorker(id, startService, filename); diff --git a/wrt_app/common/service_runner.ts b/wrt_app/common/service_runner.ts index 5f541094..f1ce5bcc 100644 --- a/wrt_app/common/service_runner.ts +++ b/wrt_app/common/service_runner.ts @@ -107,6 +107,10 @@ export function stop(id: string) { } } +export function getAppInstance() { + return app; +} + function run() { let id = workerData.id; let filename = workerData.filename; @@ -116,7 +120,9 @@ function run() { return; parentPort.on('message', (message) => { console.log(`Received message type : ${message.type}`); - if (message.type === 'stop') { + if (message.type === 'wake') { + app?.onRequest(); + } else if (message.type === 'stop') { stop(id); setTimeout(() => { XWalkExtension.cleanup();