【发布时间】:2016-07-19 13:34:39
【问题描述】:
我正在开发一个移动应用程序(iOS 和 Android),它通过蓝牙与运行 Linux 的基于 arm 的嵌入式设备进行通信。通信是客户端-服务器。电话(客户端)与设备配对,连接到设备并发送查询。设备回复这些查询。
我决定使用 Cordova(和 Ionic 框架)进行移动开发。安卓部分就完成了。对于通信,我使用的是 BluetoothSerial 插件 (https://github.com/don/BluetoothSerial)。
设备上的服务器部分基于本教程:https://people.csail.mit.edu/albert/bluez-intro/x502.html#rfcomm-server.c
最近我购买了 iPhone SE,我想定位 iOS。除蓝牙通信外,一切正常。
如果我理解正确的话,iPhone 上的蓝牙通信仅限于蓝牙智能(或蓝牙低功耗/BLE)。我正在使用的 BluetoothSerial 插件能够在 iOS 上与数量非常有限的设备进行通信。
所以我的问题是:
是否可以在 iOS 上提供完整的蓝牙支持?完整是指类似于聊天的通信,其中客户端(电话)正在发送一些结构化数据,而设备也在以文本形式回复一些结构化数据。
-
如果是这样,我可以使用 BluetoothSerial 插件吗?我还找到了 Cordova 的 BLE 插件,但它们似乎对蓝牙通信的支持非常有限(从我的角度来看)。它们只是用于在 BLE 设备上获取或写入一些广告特性。
如果我必须使用基于 BLE 的解决方案,我认为我还必须在设备上重写服务器代码。我说的对吗?
感谢您提供任何提示、建议或解决方案。
【问题讨论】:
-
我认为您需要为此编写插件。 Cordova 并不是一个很好的框架。您应该在本机中完成所有这些操作。
-
@KunalBalani 是的,我知道我必须使用插件才能与硬件通信,这正是我在 Android 案例中所做的 - 我正在使用 BluetoothSerial。我的问题是这在 iOS 上是否可行(100% 本机应用程序或 Cordova 插件)。如果是这样,使用什么插件/库/框架。
-
Stepan,您能否提供更新。我只是尝试使用 BLE Central 插件向/从 Arduino 板发送/接收几个字节。我可以让 iOS 连接到我的设备,我可以读取它的特性,但我很难发送/接收数据。很高兴在这篇文章之外进行讨论
-
@frednikgohar 我放弃了将应用程序移植到 iOS,因为数据吞吐量至关重要(我正在发送图像和相当多的 JSON 数据块)。在接下来的几周里,我将开始实现另一个应用程序,用于与自定义的基于 ARM 的 Linux 设备在一侧和电话的另一侧进行通信。嵌入式设备将运行具有多种读写特性的 BLE 信标。一旦我至少有一些概念证明,我可能会让你知道。很可能,如果我有时间,我会在博客上讨论这个。
标签: ios iphone cordova bluetooth