您快到了,但是需要在PluginResult上将KeepCallback设置为true。如果您不这样做,那么Java端的后续结果将不会在Javascript端进行回调。此类编码的最佳示例是Cordova核心中的Network插件。这是到源的链接:
https://git-wip-us.apache.org/repos/asf?p=cordova-plugin-network-
information.git;a=blob;f=src/android/NetworkManager.java;h=e2ac500ccc885db641d5df6dab8eae23026a5828;hb=头
因此,您应该将代码更新为:
public boolean execute(String action, final JSonArray args, final CallbackContext callbackId) throws JSonException { IntentFilter wifiFilter = new IntentFilter( WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION); cordova.getActivity().registerReceiver(wifiBroadcastReceiver, wifiFilter); this.callbackContext = callbackId; PluginResult result = new PluginResult(PluginResult.Status.NO_RESULT); result.setKeepCallback(true); this.callbackContext.sendPluginResult(result); return true;}public class WifiReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)) { PluginResult result; if (intent.getBooleanExtra( WifiManager.EXTRA_SUPPLICANT_CONNECTED, false)) { Toast.makeText(cordova.getActivity(), "Wifi Connected", Toast.LENGTH_SHORT).show(); result = new PluginResult(PluginResult.Status.OK, "Wifi Connected"); } else { Toast.makeText(cordova.getActivity(), "Wifi Disconnected", Toast.LENGTH_SHORT).show(); result = new PluginResult(PluginResult.Status.ERROR, "Wifi Disconnected"); } result.setKeepCallback(false); if (callbackContext != null) { callbackContext.sendPluginResult(result); callbackContext = null; } } }}


