iOS MCBrowserViewController 卡在 "Searching..."
iOS MCBrowserViewController stuck on "Searching..."
我正在尝试使用广告商助手和浏览器视图控制器来实现 iOS Multipeer Connectivity 框架。这看起来很简单,但浏览器从未找到我的其他设备。这是代码:
@property (nonatomic, strong) MCSession *peerSession;
- (void)startSession {
MCPeerID *peerId = [[MCPeerID alloc] initWithDisplayName:[[UIDevice currentDevice] name]];
self.peerSession = [[MCSession alloc] initWithPeer:peerId];
self.peerSession.delegate = self;
MCAdvertiserAssistant *advertiser = [[MCAdvertiserAssistant alloc] initWithServiceType:@"myapp" discoveryInfo:nil session:self.peerSession];
[advertiser start];
}
- (void)openBrowser {
MCBrowserViewController *peerBrowser = [[MCBrowserViewController alloc] initWithServiceType:@"myapp" session:self.peerSession];
peerBrowser.delegate = self;
[self.appDelegate.mainViewController presentViewController:peerBrowser animated:TRUE completion:nil];
}
这是 运行 在两台 iOS 9.3 设备上,都打开了蓝牙,并连接到同一个 Wi-Fi 网络。浏览器 window 打开但显示 "Searching..." 并且从不显示其他设备。
我尝试 运行 仅在我尝试浏览的设备上使用广告商代码。我还尝试直接使用 MCNearbyServiceAdvertiser 和 MCNearbyServiceBrowser。两种变化都没有影响。
我没有找到任何讨论这个问题的网页,所以希望我遗漏了一些简单明了的东西!
您需要保留对 MCAdvertiserAssistant
的引用。它在 startSession
结束时超出范围,正在发布。
@property (nonatomic, strong) MCAdvertiserAssistant *advertiser;
- (void)startSession {
MCPeerID *peerId = [[MCPeerID alloc] initWithDisplayName:[[UIDevice currentDevice] name]];
self.peerSession = [[MCSession alloc] initWithPeer:peerId];
self.peerSession.delegate = self;
self.advertiser = [[MCAdvertiserAssistant alloc] initWithServiceType:@"myapp" discoveryInfo:nil session:self.peerSession];
[self.advertiser start];
}
我正在尝试使用广告商助手和浏览器视图控制器来实现 iOS Multipeer Connectivity 框架。这看起来很简单,但浏览器从未找到我的其他设备。这是代码:
@property (nonatomic, strong) MCSession *peerSession;
- (void)startSession {
MCPeerID *peerId = [[MCPeerID alloc] initWithDisplayName:[[UIDevice currentDevice] name]];
self.peerSession = [[MCSession alloc] initWithPeer:peerId];
self.peerSession.delegate = self;
MCAdvertiserAssistant *advertiser = [[MCAdvertiserAssistant alloc] initWithServiceType:@"myapp" discoveryInfo:nil session:self.peerSession];
[advertiser start];
}
- (void)openBrowser {
MCBrowserViewController *peerBrowser = [[MCBrowserViewController alloc] initWithServiceType:@"myapp" session:self.peerSession];
peerBrowser.delegate = self;
[self.appDelegate.mainViewController presentViewController:peerBrowser animated:TRUE completion:nil];
}
这是 运行 在两台 iOS 9.3 设备上,都打开了蓝牙,并连接到同一个 Wi-Fi 网络。浏览器 window 打开但显示 "Searching..." 并且从不显示其他设备。
我尝试 运行 仅在我尝试浏览的设备上使用广告商代码。我还尝试直接使用 MCNearbyServiceAdvertiser 和 MCNearbyServiceBrowser。两种变化都没有影响。
我没有找到任何讨论这个问题的网页,所以希望我遗漏了一些简单明了的东西!
您需要保留对 MCAdvertiserAssistant
的引用。它在 startSession
结束时超出范围,正在发布。
@property (nonatomic, strong) MCAdvertiserAssistant *advertiser;
- (void)startSession {
MCPeerID *peerId = [[MCPeerID alloc] initWithDisplayName:[[UIDevice currentDevice] name]];
self.peerSession = [[MCSession alloc] initWithPeer:peerId];
self.peerSession.delegate = self;
self.advertiser = [[MCAdvertiserAssistant alloc] initWithServiceType:@"myapp" discoveryInfo:nil session:self.peerSession];
[self.advertiser start];
}