gpt4 book ai didi

javascript - 无法从 Objective C 插件返回 Ionic/Cordova 应用程序

转载 作者:行者123 更新时间:2023-11-29 00:31:14 30 4
gpt4 key购买 nike

我为蓝牙斑马打印机编写了一个插件。我可以让它工作并且打印得很好,但是如果打印机关闭或未连接,我需要将错误返回到我的应用程序。我可以直接从 Objective C 在警报中打开它,但我确实需要将错误返回到我的移动应用程序,以便在出现错误时我可以为用户创建新操作。

代码可以编译并构建,但是当我运行代码时,它不会将错误返回到我的 javascript 错误函数。请记住,我对 Objective C 不太熟悉,并且正在努力解决这个问题。

这是应该发送回应用程序的 Objective C 代码(我可以看到代码进入此函数,但不会被发送回):

__block CDVPluginResult* result; //Declared at the beginning of the print function in .m file

dispatch_async(dispatch_get_main_queue(), ^{
if(success != YES || error != nil) {

result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR
messageAsString:[NSString stringWithFormat:
@"Either the printer is turned off or not connected "]];
}
});

这是我的 JavaScript 函数,我在其中发起对打印机的调用。

$scope.printTicket = function () {
$ionicPlatform.ready(function () {

cordova.plugins.zebra.printer.sendZplOverBluetooth($scope.printObj, function successCallback () {
console.log('SUCCESS: Print');

}, function errorCallback () {
console.log('ERROR: Print');

});

})
}

非常感谢任何帮助。

最佳答案

您需要在使用 sendPluginResult 创建插件结果后实际发送它 - 类似于:

- (void) yourPluginFunction: (CDVInvokedUrlCommand*)command
{
__block CDVPluginResult* result; //Declared at the beginning of the print function in .m file

dispatch_async(dispatch_get_main_queue(), ^{
if(success != YES || error != nil) {

result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR
messageAsString:[NSString stringWithFormat:
@"Either the printer is turned off or not connected "]];

[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
}
});
}

关于javascript - 无法从 Objective C 插件返回 Ionic/Cordova 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41746852/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com