我想尝试将Braintree SDK集成到现有的NativeScript-Mobile应用程序中。由于SDK仅适用于其本机平台,因此我考虑使用NS-Marshalling在相应的操作系统上执行与平台相关的SDK。
由于我很确定它不会那么简单,我想到了两种可能性: 实现依赖于相应语言的模块平台(例如iOS - Objective-C / Swift),如Braintree方面(https://developers.braintreepayments.com/start/hello-client/ios/v3)所述,并将它们与NativeScript集成平台依赖(我将其视为一个模块,我说使用这个对象列表,我收到“付款成功”或“付款失败”响应)。然后,OS-Dependend模块将完成其余的工作(评估,SDK交互等)。
另一种方法是将每一段代码编组到JS模块中并执行依赖于JS模块的平台。我缺少的只是集成模块的可能性,因为我不知道,我应该如何导入和访问“-Library通过JavaScript(我甚至不认为这是可能的)。”
您如何看待这种方法?可以这样或那样做吗?
答案 0 :(得分:2)
您可以在NativeScript中使用本机库(例如CocoaPods,dynamic and static libraries for iOS和*.aar and *.jar for Android),并通过JavaScript / TypeScript访问它们。在我看来,最好的方法是创建NativeScript plugin并使用数据转换(marshalling for iOS)通过JavaScript / TypeScript公开所需的功能 (和here the respective article for Android)
根据Android的建议,您还可以add dependencies to a library through the gradle file