在 Ionic 项目中使用 Swift 库

Posted

技术标签:

【中文标题】在 Ionic 项目中使用 Swift 库【英文标题】:Using Swift library in Ionic project 【发布时间】:2017-08-08 07:40:46 【问题描述】:

我正在开发使用 BLE 连接自定义设备的新应用程序。我在 Swift 中编写了某种解析器,它可以获取字节数组(我从外围设备获取)并将其转换为对象。我在 ios 应用程序中使用这个对象来做一些 UI 更改。

将来我想添加对 android 的支持。

我将使用 Ionic 为 Android 和 iOS 制作可共享的 UI,但我的解析器有问题。我该怎么办:

    是否可以在 iOS 和 Android 的 Ionic 中将 Swift 库用作第 3 个库?如何? (我的解析器没有使用iOS SDK,业务逻辑清晰) 我应该用 Java 编写解析器并同时使用 Swift 和 Java 吗? 还有其他方法可以重用我的解析器代码吗? C/C++?还有什么?

【问题讨论】:

KotlinSwift 相似,我会考虑为解析器维护它们。它们之间可能会有一些自动转换。 是的,但我需要保留两个版本的解析器 如果你用纯 C 编写解析器,那么创建 Swift 模型对象会有一些开销。如果您没有任何第 3 方库使用它,请远离 C++。我确实相信将 Java 桥接到 Swift 以完成此类任务将是一种矫枉过正,我会选择更轻量级的东西,例如 Python 【参考方案1】:

如果您想在 iOS 和 Android 这两个平台上使用相同的解析器代码,则必须在应用程序的混合部分(使用 javascript 或 typescript)实现它。我不知道使用 Swift for Android 或 Java for iOS 的任何方式。有可能在 C 或 C++ 中创建解析器并将其编译成 .so lib 用于 android 和 .dylib 用于 iOS,但在 ionic/cordova 应用程序中这样做总是很痛苦,需要处理许多陷阱。

【讨论】:

以上是关于在 Ionic 项目中使用 Swift 库的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ionic 项目添加远程 git 存储库的授权错误

在 Swift 或 Java android 项目中使用 Xamarin 库

Ionic 项目创建

Alamofire swift 库版本 4.4 未安装在 swift 3.0.2 项目中

Ionic Studio - TypeError:无法读取 null 的属性“主要”

在 swift 框架项目中包含 CocoasMQTT 库