我想尝试将 Braintree SDK 集成到现有的 NativeScript 移动应用程序中。由于 SDK 仅适用于其原生平台,因此我考虑使用 NS-Marshalling 在相应的操作系统上执行平台相关的 SDK。
因为我很确定它不会那么容易,所以我考虑了两种可能性: 实现依赖于相应语言(例如 iOS - Objective-C/Swift)的模块平台,就像在 Braintree 方面(https://developers.braintreepayments.com/start/hello-client/ios/v3)提到的那样,并从 NativeScript 中集成它们的平台依赖(我把它想象成一个模块,我说使用这个列表对象,我收到“支付成功”或“支付失败”的响应)。 OS-Dependend 模块将完成剩下的工作(评估、SDK 交互等)。
另一种方法是将每一段代码编码到 JS 模块中并执行依赖于 JS 模块的平台。我缺少的只是集成模块的可能性,因为我不知道应该如何通过 JavaScript 导入和访问“-Library(我什至认为这是不可能的)。
您如何看待这种方法?是否有可能以一种或另一种方式做到这一点?
最佳答案
您可以在 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
关于javascript - 如何在相应操作系统上的 Nativescript 中集成平台依赖的 SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45633405/