如何从Cordova自定义插件返回字符串

BiJ*_*BiJ 1 java phonegap-plugins cordova cordova-plugins

在cordova中创建自定义插件时,execute方法的返回类型为Boolean,但对于我的应用程序,我希望返回一些可以在javascript中使用的String类型。但是由于返回类型是布尔型,所以我不能这样做。

有什么办法可以从该execute方法返回一些值?

Dav*_*den 5

对于Android和iOS,这是将本地字符串发送回Cordova应用程序中JS层的方法:

Android(Java)

public class MyPlugin extends CordovaPlugin {
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        String myString = "Some string";
        callbackContext.success(myString);
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

iOS(Objective-C)

@implementation MyPlugin

- (void) myAction:(CDVInvokedUrlCommand*)command {
    NSString* myString = @"Some string";

    CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:myString];
    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}
Run Code Online (Sandbox Code Playgroud)

插件桥(JavaScript)

MyPlugin = {
    myAction: function(success, error){
        cordova.exec(success, error, "MyPlugin", "myAction", []);
    }
}
module.exports = MyPlugin;
Run Code Online (Sandbox Code Playgroud)

您的应用(JavaScript)

function success(myString){
    alert(myString);
}

function error(error){
    alert(JSON.stringify(error));
}

MyPlugin.myAction(success, error);
Run Code Online (Sandbox Code Playgroud)