【问题标题】:Bluetooth LE app, how to build it cross-plaftorm (iOS-Android)?蓝牙 LE 应用程序,如何跨平台(iOS-Android)构建它?
【发布时间】:2015-06-12 21:51:12
【问题描述】:

我正在开发一个与蓝牙 LE 设备通信的应用程序。我想要一些方法来避免为 iOS 和 Android 开发它两次。是否有对蓝牙 LE 有良好支持的跨平台应用框架?

我已经快速浏览了 Cordova (PhoneGap)、Appcelerator、Xamarin 等框架(通常的嫌疑人:例如this list),但我不知道它们是否 (a) 在每个平台上都支持蓝牙 LE根本不存在,并且(b)如果他们这样做,无论是通过本机调用(如何访问?)还是对本机 API 的某种包装器(包装器看起来像什么?),以及(c)如果它是一个包装器,它有多完整,它有多稳定。

如果您有这方面的经验,您能否总结一下不同框架下对低功耗蓝牙的支持情况?

编辑一些信息来自挖掘各种选项和下面的答案:

附:除了蓝牙,我的需求非常小:这个应用程序会有很多 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


【解决方案1】:

我一直在为 BluetoothLE 使用Randdusing 的 Cordova 插件,它适用于 Android 和 iOS(Windows 手机仍在开发中)。作为 Cordova,它旨在与 HTML5/JavaScript 应用程序一起使用,但插件本身(就像所有 Cordova 插件一样?)是用本机代码编写的。 在我的项目早期,我尝试了Evothings,它也有 BLE 插件,但我发现了一些问题,我不知道这些问题是否已经解决。 在 UI 要求方面,我的应用程序听起来与您的应用程序非常相似,如果您愿意,我可以帮助集成 BLE 代码 - 但您需要先将您的“c”重写为 javascript。 顺便说一句,您要求使用较旧的 Android,但仅在 Android 4.3 or higher 中支持 AFAIK BLE。

【讨论】:

  • 我一定会看看 Cordova 插件。你在 Evothings 上遇到了什么? (它看起来很整洁,但我还没有尝试过)。
  • 你能用蓝牙插件连接手机到手机吗?只是为了通过蓝牙将数据从安卓手机发送到 Windows 手机。
  • 你有没有找到 Randdusing 的 iOS 示例 cordova 应用程序?我从 M$ 找到的那个似乎只支持 Android/Windows。
【解决方案2】:

我正在使用 Qt 框架开发支持 BLE 的跨平台应用程序: http://doc.qt.io/qt-5/qtbluetooth-lowenergyscanner-example.html

目前支持的平台有Andriod、iOS、OSX、Linux。据说Windows平台在即将发布的Qt 5.6版本中支持BLE(真的很期待)。 BLE 相关类易于使用,Qt 在示例/文档中提供了两个示例项目。我不确定的是在扫描期间获取制造商特定数据。现在,我正在连接设备以获取某些信息,如果我可以读取制造商特定数据,则不需要这些信息。 Qt 的 BLE 目前只支持中心角色。

Qt 基于 C++,如果这对你很重要的话。

【讨论】:

  • 你发布了这个应用程序吗?我真的很想尝试它并评估它的性能和美学......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-25
  • 2018-03-02
  • 2015-06-26
相关资源
最近更新 更多