我们正在尝试为CardIO www.card.io创建一个nativescript插件(IOS)
CardIO(5.4.1):

  • 下载了nativescript-plugin-seed(https://github.com/NathanWalker/nativescript-plugin-seed)
  • 对种子执行所有预请求。
  • 在平台中添加了podFile(pod'CardIO',:git =>'https://github.com/card-io/card.io-iOS-SDK.git')
  • 修改后的CardIO.ios.ts以调用CardIO库中的函数

  • Pod正在下载良好。当我们检查XCODE项目时,添加了Cardio pod,并添加了库和* .h文件。

    当我们运行项目时,我们无法调用CardIO库中的任何函数。我们假定该库中的任何功能都没有针对javascript公开。

    JavaScript错误:

    文件:///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);
        }
    }
    

    最佳答案

    我今天对此进行了调查,不得不得出结论,CardIO当前不兼容NativeScript。它并不经常发生,但有时会发生。

    好消息是,您可以利用Podfile的资产并自己创建一个静态框架(在这种情况下),该框架可以很好地暴露给NativeScript。

    在这种情况下,尽管还有更多挑战(例如,三个.a文件而不是一个文件)。

    这里要解释的内容太多了(过程和代码),所以我宁愿向GitHub存储库中添加一些代码,并从本期开始对此进行链接。

    如果您需要我的帮助,可以给我发邮件(gmail.com上的eddyverbruggen)吗?

    关于ios - CardIO的Nativescript插件(IOS)-无法调用CARDIO库中的任何函数,并且不会公开,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43610017/

    10-13 05:00