我们正在尝试为CardIO www.card.io创建一个nativescript插件(IOS) 心(5.4.1):
Pod下载得很好。当我们检查XCODE项目时,添加了Cardio pod并添加了库和* .h文件。
当我们运行项目时,我们无法调用CardIO库中的任何功能。我们假设库中没有任何函数暴露给javascript。
JavaScript错误:
file:///app/tns_modules/nativescript-cardio/cardio.js:3:57:JS错误 ReferenceError:找不到变量:CardIOPaymentViewController
请在cardio.ios.ts找到代码
export var scanCardClicked = function () {
// var CardIOPaymentViewController=new CardIOPaymentViewController();
let scanViewController = CardIOPaymentViewController.alloc().initWithPaymentDelegate(this);
scanViewController.modalPresentationStyle = UIModalPresentationFormSheet;
this.presentViewControllerAnimatedCompletion(scanViewController, 1, null);
}
class CardIOPaymentViewControllerDelegateImpl extends NSObject implements CardIOPaymentViewControllerDelegate {
userDidProvideCreditCardInfoInPaymentViewController(info: CardIOCreditCardInfo, paymentViewController: CardIOPaymentViewController)
{this.dismissViewControllerAnimatedCompletion(1, null);
//this.infoLabel.test = "Received Card: " + info.redactedCardNumber + "Expiry:" + info.expiryMonth + "/" + info.expiryYear + "CVV:" + info.cvv;
}
userDidCancelPaymentViewController(paymentViewController: CardIOPaymentViewController)
{
this.dismissViewControllerAnimatedCompletion(1, null);
}
}
答案 0 :(得分:1)
我今天对此进行了调查,并得出结论,CardIO目前不兼容NativeScript。它并不经常发生,但有时会发生。
好消息是你可以获取Podfile的资源并自己创建一个(在这种情况下)静态框架,可以很好地暴露给NativeScript。
在这种情况下,虽然还有一些挑战(例如,三个.a文件而不是一个文件)。
这里解释的有点过多(程序和代码),所以我宁愿在GitHub仓库中添加一些代码并链接到这个问题。
如果您需要我的帮助,可以给我发邮件(eddverbruggen at gmail dot com)吗?