RxBluetoothKit 是一个改进与 BLE 设备交互的蓝牙库。它由 RxSwift 和 CoreBluetooth 支持,并提供中央和外围模式下的良好 API,使得代码更容易阅读、更可靠且易于维护。
以下是您可以使用 RxBluetoothKit 做的示例:
manager.scanForPeripherals(withServices: [serviceId])
.take(1)
.flatMap { $0.peripheral.establishConnection() }
.flatMap { $0.discoverServices([serviceId]) }
.flatMap { Observable.from($0) }
.flatMap { $0.discoverCharacteristics([characteristicId]) }
.flatMap { Observable.from($0) }
.flatMap { $0.readValue() }
.subscribe(onNext: { print("Value: \($0.value)") })
只需9行代码即可开始扫描、连接到外围设备、发现服务和特征,并读取特征值!
中央模式功能
外围模式功能
- 观察管理状态
- 广告
- 观察读写操作
- 观察订阅
- 发布 L2CAP 通道
- 还有很多其他功能!
近期更改
6.0.0
- 将iOS的部署目标提高至9.0,将macos的部署目标提高至10.13(#379,#380)
- 在从属设备上添加了对ancsAuthorized属性的监控支持。(#370)
- 在示例项目中添加了Info.plist的蓝牙使用描述。(#369)
- 对BluetoothState方法进行了初始状态改进及微小修复。(#371)
- 修复了SPM支持的相关问题。(#358,#368)
- 已将RxSwift的版本更新至5.1。(#376)
- 已更新项目配置以减少在TravisCI上的构建时间。(#376)
- 更新了脚本,以修复生成模拟时的相关问题。(#378)
想要从4.x迁移到5.x?请查阅指南此处。
安装
CocoaPods
CocoaPods 是 Cocoa 项目的一个依赖管理器。要使用 CocoaPods 将 RxBluetoothKit 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它。
pod 'RxBluetoothKit'
然后,运行以下命令:$ pod install
Carthage
Carthage 是一个去中心化的依赖管理器,它构建您的依赖并提供二进制框架。要使用 Carthage 将 RxBluetoothKit 集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它。
github "Polidea/RxBluetoothKit"
然后,运行 carthage update
来构建框架,并将 RxBluetoothKit.framework
拖到您的 Xcode 项目中。
Swift Package Manager
库的版本 >= 4.0 集成了 Swift Package Manager。为了做到这一点,请将我们的项目指定为 Package.swift
文件中的一个依赖项。
开始使用
检查我们的Wiki了解几乎所有库功能的指南。
文档与支持
- API参考
- 示例应用
- 如果您想要讨论它,提问或提供反馈,请访问Gitter频道。
- 如果您遇到问题,请访问StackOverflow。
- 或者向GitHub上提交一个issue。
请关注Polidea的博客以获取所有新闻和更新!
了解更多关于Polidea的BLE服务的信息。
要求
- iOS 9.0+
- OSX 10.13+
- watchOS 4.0+
- tvOS 11.0+
- Xcode 11.4+
Swift版本
- 3.0版本支持Swift 3.0和3.1
- 5.0版本支持Swift 3.2和4.0
- 5.1.2版本支持Swift 4.1
- 5.2版本支持Swift 5.0和4.2