Неверный идентификатор обратного вызова, полученный sendPluginResult - плагин Cordova iOS - PullRequest
1 голос
/ 04 февраля 2020

Я пытаюсь внедрить плагин Cordova для ARKit в моем приложении ioni c, которое измеряет расстояние между двумя точками. Я могу успешно выполнить измерения, но не могу получить данные измерений в результате в моем приложении ioni c. Вот как выглядит мой код:

MeasurePlugin + ViewControllerDelegate.swift

extension MeasurePlugin: ViewControllerDelegate {
    func allowMultiple() -> Bool {
        return allowMultiplePoints ?? false;
    }

    //Dismiss View
    func closeView() {
        let data = myViewController.getMeasures();
        var result: CDVPluginResult
        if (!allowMultiple() && data.count > 0) {
            result = CDVPluginResult(status: CDVCommandStatus_OK, messageAs: data[0])
        } else {
            result = CDVPluginResult(status: CDVCommandStatus_OK, messageAs: data)
        }
        NSLog(result.message as! String); //getting measured value here
        myViewController.view.removeFromSuperview()
        self.myViewController = nil

        result.setKeepCallbackAs(true)
        commandDelegate!.send(result, callbackId: finishListenerCallbackId)
    }

    @objc func setFinishListener(_ command: CDVInvokedUrlCommand) {
        finishListenerCallbackId = command.callbackId
    }
}

Мой www/cordova-plugin-measure.js файл выглядит так:

var exec = require('cordova/exec');
var pluginName = 'MeasurePlugin';

/**
 * Callback when the view is dismissed
 */
exports.onFinish = function (success = function(){
    console.log("OnFinish Success");
}, error = function(){}) {
    exec(success, error, pluginName, 'setFinishListener');
};

Поэтому, когда я пытаюсь закрыть представление, вызывая функцию closeView (), я получаю сообщение об ошибке в xcode как «Недопустимый идентификатор обратного вызова, полученный sendPluginResult». Обратите внимание, что я получаю свое значение меры внутри результата (обратите внимание на NSLog (result.message as! String); код), но оно не отправляет это значение обратно моему компоненту ioni c. Есть идеи, что я здесь делаю не так?

...