IOS上后台任务的React-native本机模块可能性

时间:2018-04-12 17:14:06

标签: ios react-native bluetooth-lowenergy background-process react-native-ios

我的问题:我有一个与医疗BLE设备通信的应用程序。我已经完成了所有工作,但我的问题是,当ios用户将应用程序放在后台时,我停止获取/处理通过蓝牙发送的消息。 Android似乎不断获取这些消息,但是从我发现的,在iOS上,JS桥被拆除,并且没有针对此问题的解决方案。手机必须继续处理从BLE设备发送的数据。

我的想法是这个,这是我的问题。 是否有可能为ios创建一个始终正在运行的本机模块并执行以下操作:获取通知时获取数据。将该数据存储到文件系统并在应用程序处于后台时将其推送到Web服务?当应用程序返回到前台时,能够读取fs创建的文件并显示有关它们的一些数据也是很棒的。这有可能吗?

你知道另一个可行的选择吗?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您必须在Xcode项目设置中启用iOS后台模式功能。

另请参阅react-native-ble-plx,它为iOS和Android提供后台支持。

答案 1 :(得分:1)

好的,因为我正沿着原生路径前进并阅读ios bluetooth schtuff,我发现了这篇文章Core Bluetooth Programming Guide,特别是它提到了一个plist设置。

  

通过将 UIBackgroundModes 键添加到Info.plist文件并将键的值设置为包含以下字符串之一的数组来声明核心蓝牙后台执行模式:    bluetooth-central - 该应用程序使用Core Bluetooth框架与蓝牙低功耗外围设备进行通信。    bluetooth-peripheral - 该应用使用Core Bluetooth框架共享数据。

所以我想,只要将这些密钥添加到我的xcode项目中,iOS就足够智能了,而不关心我是RN应用程序而不是本机......那就是票!我插入了这些值,即使我打开另一个应用程序,也会处理ble数据。 " Wallah&#34!; ;)