[HybridWebApp]update HybridWebApp(tizen_2.1)
[samples/web/HybridWebApp.git] / js / main.js
index 36761c3..b980fb7 100644 (file)
 
 var app = tizen.application.getCurrentApplication();
 var gServiceAppId = "r9vrpxzuyp.HybridServiceApp";
-var gWsUri = "ws://127.0.0.1:8080/ipc?src=" + app.appInfo.id + ".HybridWebApp&dest=r9vrpxzuyp.HybridServiceApp";
-var gWebSocket;
+var gServicePortName = "SAMPLE_PORT";
+var gLocalMessagePortName = "SAMPLE_PORT_REPLY";
+
+var gLocalMessagePort;
+var gRemoteMessagePort;
+
+var gLocalMessagePortWatchId;
+
 var isStarting = false;
 
 $(document).delegate("#main", "pageinit", function() {
@@ -28,7 +34,7 @@ $(document).delegate("#main", "pageinit", function() {
 
        $("#btn-start").bind("vclick", function(){
 
-               if(gWebSocket) {
+               if(gLocalMessagePort) {
                        alert("Already Started");
                } else if(isStarting){
                        alert("Now starting...");
@@ -39,7 +45,7 @@ $(document).delegate("#main", "pageinit", function() {
                return false;
        });
        $("#btn-stop").bind("vclick", function(){
-               if(gWebSocket) {
+               if(gRemoteMessagePort) {
                        sendCommand("stop");
                } else {
                        alert("Not Started");
@@ -52,43 +58,41 @@ $(document).delegate("#main", "pageinit", function() {
        });
 });
 
-function startWebSocket() {
-       gWebSocket = new WebSocket(gWsUri);
+function startMessagePort() {
+       try {
+               gLocalMessagePort = tizen.messageport.requestLocalMessagePort(gLocalMessagePortName);
+               gLocalMessagePortWatchId = gLocalMessagePort.addMessagePortListener( function(data, remote) {
+                       onReceive(data, remote);
+               });
+       } catch (e) {
+               writeToScreen(e.name);
+       }
+
+       try {
+               gRemoteMessagePort = tizen.messageport.requestRemoteMessagePort(gServiceAppId, gServicePortName);
+       } catch (e) {
+               writeToScreen(e.name);
+       }
+
        isStarting = false;
 
-       gWebSocket.onopen = function(evt) {
-               onOpen(evt);
-       };
-       gWebSocket.onclose = function(evt) {
-               onClose(evt);
-       };
-       gWebSocket.onmessage = function(evt) {
-               onMessage(evt);
-       };
-       gWebSocket.onerror = function(evt) {
-               onError(evt);
-       };
+       sendCommand("connect");
 }
 
 function sendCommand(command){
        var jsondata = '{"command" : "' + command + '"}';
 
-       gWebSocket.send(JSON.stringify(jsondata));
+       gRemoteMessagePort.sendMessage([ { key:"command", value:command } ], gLocalMessagePort);
        writeToScreen("Sending: " + command);
 }
 
-function onOpen(evt) {
-       writeToScreen("Ready");
-       sendCommand("connect");
-}
+function onReceive(data, remote) {
+       var message;
 
-function onClose(evt) {
-       writeToScreen("Disconnected");
-       gWebSocket = null;
-}
-
-function onMessage(evt) {
-       var message = JSON.parse(evt.data).server;
+       for(var i in data) {
+               if(data[i].key == "server")
+                       message = data[i].value;
+       }
 
        writeToScreen("Received : " + message);
 
@@ -96,19 +100,19 @@ function onMessage(evt) {
                sendCommand("start");
        }else if(message == "stopped"){
                sendCommand("exit");
-               gWebSocket.close();
        }else if(message == "exit"){
-               gWebSocket.close();
+               if(gRemoteMessagePort)
+                       gRemoteMessagePort = null;
+               if(gLocalMessagePort) {
+                       gLocalMessagePort.removeMessagePortListener(gLocalMessagePortWatchId);
+                       gLocalMessagePort = null;
+               }
        }
 }
 
-function onError(evt) {
-       writeToScreen("ERROR:" + evt.data);
-}
-
 function writeToScreen(message) {
        var today = new Date(),
-               time = today.getFullYear() + "-" + today.getMonth() + "-" + today.getDate() + " "
+               time = today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate() + " "
                                + today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds() + "." + today.getMilliseconds(),
                str = '<li class="ui-li-has-multiline ui-li-text-ellipsis">'
                                + message
@@ -130,7 +134,6 @@ function start() {
 function onGetAppsContextSuccess(contexts) {
        for (var i = 0; i < contexts.length; i++) {
                var appInfo = tizen.application.getAppInfo(contexts[i].appId);
-               console.log(appInfo.id);
                if(appInfo.id == gServiceAppId){
                        console.log("Running Service App found");
                        break;
@@ -138,9 +141,10 @@ function onGetAppsContextSuccess(contexts) {
        }
        if (i >= contexts.length) {
                console.log("Running Service App not found. Trying to launch it");
-               listInstalledApps();
+               launchServiceApp();
+               //listInstalledApps();
        }else{
-               startWebSocket();
+               startMessagePort();
        }
 }
 
@@ -165,6 +169,7 @@ function getAppsInfoSuccessCB(apps) {
        }
        if(i >= apps.length){
                writeToScreen("Service App not installed");
+               isStarting = false;
                return;
        }
        launchServiceApp();
@@ -172,9 +177,10 @@ function getAppsInfoSuccessCB(apps) {
 
 function getAppsInfoErrorCB(err) {
        console.log("getAppsInfo failed");
+       isStarting = false;
 }
 
-function launchServiceApp(){
+function launchServiceApp() {
        function onSuccess() {
                console.log("Service App launched successfully!");
                console.log("Restart...");
@@ -183,9 +189,11 @@ function launchServiceApp(){
 
        function onError(err) {
                console.log("Service Applaunch failed");
+               isStarting = false;
        }
 
        try {
+               console.log("Launching [" + gServiceAppId + "] ...");
                tizen.application.launch(gServiceAppId, onSuccess, onError);
        } catch (exc) {
                alert("launch exc:" + exc.message);