diff --git a/WelsonJS.Toolkit/WelsonJS.Service/ServiceMain.cs b/WelsonJS.Toolkit/WelsonJS.Service/ServiceMain.cs index 61f0385..fe25837 100644 --- a/WelsonJS.Toolkit/WelsonJS.Service/ServiceMain.cs +++ b/WelsonJS.Toolkit/WelsonJS.Service/ServiceMain.cs @@ -334,7 +334,8 @@ namespace WelsonJS.Service object[] parameters = new object[] { scriptName, eventType, - new ArrayList(args) + new ArrayList(args), + args.Length }; //scriptControl.AddObject("extern_arguments", new ArrayList(args), true); diff --git a/app.js b/app.js index daef76c..baa9859 100644 --- a/app.js +++ b/app.js @@ -592,8 +592,14 @@ function initializeWindow(name, args, w, h) { } } -function dispatchServiceEvent(name, eventType, w_args) { +function dispatchServiceEvent(name, eventType, w_args, argl) { var app = require(name); + var args = []; + + // convert the arguments to Array + for (var i = 0; i < argl; i++) { + args.push(w_args(i)); + } // load the service if (app) { @@ -610,7 +616,7 @@ function dispatchServiceEvent(name, eventType, w_args) { if (eventType in action) { try { return (function(f) { - return (typeof f !== "function" ? null : f(w_args)); + return (typeof f !== "function" ? null : f(args)); })(action[eventType]); } catch (e) { console.error("Exception:", e.message); diff --git a/defaultService.js b/defaultService.js index f1558d4..dd3e4b2 100644 --- a/defaultService.js +++ b/defaultService.js @@ -21,11 +21,11 @@ function onServiceElapsedTime() { } function onMessageReceived() { - return "onMessageReceived recevied. " + args.join(', '); + return "onMessageReceived recevied. " + args.join(', '); } function onServiceScreenTime(args) { - return "onServiceScreenTime recevied. " + args(0); + return "onServiceScreenTime recevied. " + args.join(', '); } function onFileCreated(args) {