diff --git a/src/android/NanoHTTPDWebserver.java b/src/android/NanoHTTPDWebserver.java index c3c0e97..748dbf3 100644 --- a/src/android/NanoHTTPDWebserver.java +++ b/src/android/NanoHTTPDWebserver.java @@ -3,6 +3,7 @@ package org.apache.cordova.plugin; import android.annotation.TargetApi; import android.os.Build; +import android.util.Log; import org.apache.cordova.PluginResult; import org.json.JSONException; @@ -21,7 +22,7 @@ public class NanoHTTPDWebserver extends NanoHTTPD{ Webserver webserver; public NanoHTTPDWebserver(int port, Webserver webserver) { - super("0.0.0.0", port); + super(port); this.webserver = webserver; } @@ -53,6 +54,8 @@ public class NanoHTTPDWebserver extends NanoHTTPD{ @Override public Response serve(IHTTPSession session) { + Log.d(this.getClass().getName(), "New request is incoming!"); + String requestUUID = UUID.randomUUID().toString(); PluginResult pluginResult = null; @@ -74,6 +77,7 @@ public class NanoHTTPDWebserver extends NanoHTTPD{ } JSONObject responseObject = (JSONObject) this.webserver.responses.get(requestUUID); + Log.d(this.getClass().getName(), "responseObject: " + responseObject.toString()); Response response = null; try { response = newFixedLengthResponse( diff --git a/src/android/Webserver.java b/src/android/Webserver.java index 9804f8f..cf82547 100644 --- a/src/android/Webserver.java +++ b/src/android/Webserver.java @@ -1,9 +1,10 @@ package org.apache.cordova.plugin; +import android.util.Log; + import org.apache.cordova.*; import org.json.JSONArray; import org.json.JSONException; -import org.json.JSONObject; import java.io.IOException; import java.util.HashMap; @@ -13,8 +14,7 @@ public class Webserver extends CordovaPlugin { public HashMap responses; public CallbackContext onRequestCallbackContext; - - private NanoHTTPDWebserver nanoHTTPDWebserver; + public NanoHTTPDWebserver nanoHTTPDWebserver; @Override public void initialize(CordovaInterface cordova, CordovaWebView webView) { @@ -40,8 +40,8 @@ public class Webserver extends CordovaPlugin { this.onRequest(args, callbackContext); return true; } - else if ("onResponse".equals(action)) { - this.onResponse(args, callbackContext); + else if ("sendResponse".equals(action)) { + this.sendResponse(args, callbackContext); return true; } return false; // Returning false results in a "MethodNotFound" error. @@ -57,9 +57,18 @@ public class Webserver extends CordovaPlugin { if (args.length() == 1) { port = args.getInt(0); + } + this.nanoHTTPDWebserver = new NanoHTTPDWebserver(port, this); this.nanoHTTPDWebserver.start(); + + Log.d( + this.getClass().getName(), + "Server is running on: " + + this.nanoHTTPDWebserver.getHostname() + ":" + + this.nanoHTTPDWebserver.getListeningPort() + ); callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK)); } @@ -81,7 +90,8 @@ public class Webserver extends CordovaPlugin { * @param callbackContext * @throws JSONException */ - private void onResponse(JSONArray args, CallbackContext callbackContext) throws JSONException { + private void sendResponse(JSONArray args, CallbackContext callbackContext) throws JSONException { + Log.d(this.getClass().getName(), "Got sendResponse: " + args.toString()); this.responses.put(args.getString(0), args.get(1)); callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK)); } diff --git a/webserver.js b/webserver.js index a0aaeae..cbc44be 100644 --- a/webserver.js +++ b/webserver.js @@ -1,12 +1,16 @@ var WEBSERVER_CLASS = "Webserver"; exports.start = function(success_callback, error_callback, port) { + var params = []; + if (port) { + params.push(port); + } cordova.exec( success_callback, error_callback, WEBSERVER_CLASS, "start", - [port] + params ); };