用于Apple设备的MultipeerConnectivity框架的封装器,用于Apple设备之间的离线数据传输。该框架可以轻松地自动连接到多个附近的设备,并使用蓝牙或wifi无线电共享信息。
您可以使用 CocoaPods 安装 MultiPeer
,只需将其添加到您的 Podfile
中
pod 'MultiPeer'
您可以使用 Carthage 安装 MultiPeer
,只需将其添加到您的 Cartfile
中
github "dingwilson/MultiPeer"
对于 SPM,请将以下内容添加到您的程序包依赖项中
.package(url: "https://github.com/dingwilson/MultiPeer.git", .upToNextMinor(from: "0.0.0"))
首先,导入 MultiPeer。
import MultiPeer
然后,只需使用会话名称 (serviceType
) 初始化 MultiPeer。有两种连接模式(advertiser
和 browser
)。要同时使用这两种模式,只需使用 .autoConnect()
。
MultiPeer.instance.initialize(serviceType: "demo-app")
MultiPeer.instance.autoConnect()
MultiPeer 传输的任何数据都将始终附带一个数字“类型”,以确保其他对等方知道正在接收什么类型的数据,以及如何正确处理它。您可以通过创建一个 UInt32
枚举来管理它,如下所示
enum DataType: UInt32 {
case string = 1
case image = 2
// ...
}
要发送数据,只需使用 .send(object: type:)
函数
MultiPeer.instance.send(object: "Hello World!", type: DataType.string.rawValue)
要接收数据,我们必须遵守 MultiPeerDelegate
协议
func multiPeer(didReceiveData data: Data, ofType type: UInt32, from peerID: MCPeerID) {
switch type {
case DataType.string.rawValue:
let string = data.convert() as! String
// do something with the received string
break
case DataType.image.rawValue:
let image = UIImage(data: data)
// do something with the received UIImage
break
default:
break
}
}
func multiPeer(connectedDevicesChanged devices: [String]) {
}
确保您设置了 MultiPeer 代理。
MultiPeer.instance.delegate = self
最后,您需要在您的权利中启用传入/传出连接。
恭喜!您已成功使用 MultiPeer 发送数据!有关更详细的信息(包括其他功能的详细信息),请参阅 文档。
有关使用 MultiPeer 的示例应用程序,请查看 MultiPeer_Sample。
MultiPeer
在 MIT 许可证下发布。 有关详细信息,请参阅 LICENSE。
该项目深受 Apple-Signal 的启发。