4

create スクリプトを使用して cordova プロジェクトを作成し、プラグインを作成しました。ただし、何らかの理由で、pluginresult を送信するたびに JS コールバックが呼び出されません。

callbackID を確認しました。(一見)有効なコールバックで満たされています。私のプラグイン マッピングは問題ありません。ネイティブ コードが実行され、エラーはありません。

コールバックが起動されない理由がわかりません..

私のJavaScript:

(function(cordova) {

    function Plugin() {}

        Plugin.prototype.FBAuthorize = function(config) {
            cordova.exec(null, null, "Plugin", "FBAuthorize", []);
        };

        Plugin.prototype.FBGetLoginStatus = function(cb, fail) {
            cordova.exec(function(){alert('test')}, function(){alert('test')}, "Plugin", "FBGetLoginStatus", []);
        }

        Plugin.prototype.FBPostToUserTimeline = function(textToShare, imageUrl, linkUrl) {
            cordova.exec(null, null, "Plugin", "FBPostToUserTimeline", [textToShare, imageUrl, linkUrl]);
        }

        if(!window.plugins) window.plugins = {};
        window.plugins.Plugin = new Plugin();

})(window.cordova || window.Cordova || window.PhoneGap);

私のiOS

(void) FBGetLoginStatus:(CDVInvokedUrlCommand*)command {
    CDVPluginResult* result = nil;
    NSString* javascript = nil;
    if([[FBSession activeSession] isOpen]) {
        result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:@"Logged in"];
        javascript = [result toSuccessCallbackString:command.callbackId];
    } else {
        result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Not logged in"];
        javascript = [result toErrorCallbackString:command.callbackId];
    }
    [self writeJavascript:javascript];
}
4

1 に答える 1