有人知道如何通过uBudu Mesh网络接收消息吗?
我正在开发一个使用uBudu信标的应用程序,一般的想法是允许用户通过这些信标相互发送消息。我已经成功地连接了iOS-Mesh-SDK,如这里所述。https:/github.comUbuduIOS-Mesh-SDK。.
有一个例子可以说明如何将mesh消息发送到另一个beacon,而且工作得很完美,但至于如何将这些消息从beacon检索到用户应用,我不知道。
MeshBeacon类中有一些方法。
- (void)abortMeshMessage;
- (void)clearMeshMessageQueue;
- (void)setMeshNotification:(BOOL)enable withCompletionBlock:(UMeshBeaconSuccessBlock)completionBlock;
但没有任何关于信息检索的方法
任何建议都非常感谢!
正如你正确指出的,SDK还没有接收消息的方法,但有一个更新的库来支持这个功能。
我找到了一个可能是粗暴的,但能解决这个问题的方法。
首先,我们需要将自己设置为BeaconManager的委托人。
UBUMeshBeaconManager.sharedInstance().delegate = self
在实现委托方法时,连接到最近的信标,并将其外围委托重置为自己。
func meshManager(meshManager: UBUMeshBeaconManager!, didUpdateVisibleAndConnectableNodes meshNodes: [AnyObject]!) {
UBUMeshBeaconManager.sharedInstance().connectToClosestBeacon({ (meshManager, meshBeacon, userInfo) -> Void in
meshBeacon.peripheral.delegate = self
}, progressBlock: { (meshManager, userInfo) -> Void in
}, failedBlock: { (meshManager, meshBeacon, userInfo, error) -> Void in
})
}
并在Peripheral Delegate方法中等待特性更新。所有的服务和特性都将由UbuduSDK在幕后设置。
func peripheral(peripheral: CBPeripheral!,
didUpdateValueForCharacteristic characteristic: CBCharacteristic!,
error: NSError!) {
var string = NSString(data: characteristic.value, encoding: NSASCIIStringEncoding)
println(string)
}