【发布时间】:2015-06-12 21:51:12
【问题描述】:
我正在开发一个与蓝牙 LE 设备通信的应用程序。我想要一些方法来避免为 iOS 和 Android 开发它两次。是否有对蓝牙 LE 有良好支持的跨平台应用框架?
我已经快速浏览了 Cordova (PhoneGap)、Appcelerator、Xamarin 等框架(通常的嫌疑人:例如this list),但我不知道它们是否 (a) 在每个平台上都支持蓝牙 LE根本不存在,并且(b)如果他们这样做,无论是通过本机调用(如何访问?)还是对本机 API 的某种包装器(包装器看起来像什么?),以及(c)如果它是一个包装器,它有多完整,它有多稳定。
如果您有这方面的经验,您能否总结一下不同框架下对低功耗蓝牙的支持情况?
编辑一些信息来自挖掘各种选项和下面的答案:
Cordova:几个开源插件,例如https://github.com/evothings/cordova-blehttps://github.com/don/cordova-plugin-ble-centralhttps://github.com/randdusing/BluetoothLE(不是完整列表)。 Evothings 是一个不错的 Cordova + 蓝牙设置。这些是否适用于其他基于 Cordova 的应用框架,如 Appery.io、Telerik AppBuilder、Ionic Creator?
Xamarin:这只是通过 MonoTouch.CoreBluetooth 和 Android.Bluetooth 使用本机 API。这意味着使用它们的代码实际上并不是跨平台的,但它们很可能与原生 API 一样工作(因为它们本质上是原生 API)。
Appcelerator 有第三方商业蓝牙插件 (https://marketplace.appcelerator.com/apps/3834 和 https://marketplace.appcelerator.com/apps/6611),没有内置支持。这些有用吗?
附:除了蓝牙,我的需求非常小:这个应用程序会有很多 UI 元素,但不是很复杂,只是一堆不同屏幕上的一堆按钮/复选框/滑块(在两个平台上维护会非常乏味) )。我还需要对 REST API 进行几次调用。速度不是很重要,没有太多的应用程序逻辑(现在大部分是用 C 编写的),原生 UI 外观也不是那么重要。然而,在旧版本的平台上工作很重要,最好回到 Android 4.3 和 iOS 7.0。
【问题讨论】:
-
Phonegap 有几个关于蓝牙低功耗的插件。如果您需要 UI 元素,我认为您可以使用 HTML5/CSS 轻松获得所有这些元素。但是为这两种环境构建并不像看起来那么容易,因为每个操作系统都需要两个合适的环境。查看文档以及 Phonegap 的工作原理。docs.phonegap.com/en/4.0.0/…。最后,如果您想在某一天销售您的应用程序,请注意 Xamarin 和 Appcelerator 有许可费用,而 Cordova 是免费的。
-
对于所有投票结束这个的人,你能解释一下为什么吗?这完全符合主题(参见:“程序员常用的软件工具”等)。它不是要求基于意见的建议,而是询问事实(“这在框架 X 中有效吗?”)。因此,我对问题所在感到困惑。
-
你能分享一下你最终得到了什么(如果你这样做了)?谢谢
-
@AlexI 您最终使用了哪种解决方案?我目前正在使用 BLECentralPlugin 评估 Cordova/Ionic。我发现使用这样的框架对于来自传统 Android 开发背景的人来说并不直观......
-
@IgorGanapolsky 我首先开发了一个简单的 iOS 原生应用,然后使用 randduisng/BluetoothLE 插件切换到 Cordova。效果很好,没有看到任何与插件相关的问题。适用于 iOS 10.x、Android 6.x 的 Cordova 6.1。
标签: android ios cordova bluetooth bluetooth-lowenergy