Put some logs in the Java things, got an error cause i defined the wrong function name

This commit is contained in:
Michael Bykovski 2017-07-11 16:45:27 +02:00
parent ac5b47b1a0
commit 7c1607448e
3 changed files with 26 additions and 8 deletions

View File

@ -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(

View File

@ -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<String, Object> 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));
}

View File

@ -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
);
};