以编程方式实现 MultiPeerConnectivity
MultiPeerConnectivity programmatically
我正在制作一个在手机之间传输数据的应用程序。如何在没有 MCBrowserViewController
的情况下以编程方式连接和接受来自另一台设备的连接请求
我在multipeer connectivity framework工作,希望能帮到你。
第 1 步:
您可以使用 MCNearbyServiceAdvertiser 通过自定义服务类型为自己做广告,例如:
let advertiser = MCNearbyServiceAdvertiser.init(peer: *peerID*, discoveryInfo: *dict*, serviceType: *custom_service_type*)
设置委托,开始宣传自己。
第 2 步:
在其他设备中,用户 MCNearbyServiceBrowser
let browser = MCNearbyServiceBrowser.init(peer: *peerID*,serviceType: *custom_service_type*)
设置委托并开始浏览同行用户。
第 3 步:
当浏览器发现一些用户处于同一 Wi-fi 网络且具有相同的服务类型时,您将收到一个委托回调到
func browser(_ browser: MCNearbyServiceBrowser, foundPeer peerID: MCPeerID, withDiscoveryInfo info: [String : String]?)
第 4 步:
手动尝试连接到对等点
browser.invitePeer(*peerID*, to: *session*, withContext: nil, timeout: 30)
第 5 步:
在第一个设备中,您将在委托方法中收到一个回调,说明对等设备想要连接
func advertiser(_ advertiser: MCNearbyServiceAdvertiser, didReceiveInvitationFromPeer peerID: MCPeerID, withContext context: Data?, invitationHandler: @escaping (Bool, MCSession?) -> Void)
使用真值调用完成处理程序并共享您的会话
invitationHandler(true,*session*)
这里我们不需要任何用户交互。所有都以编程方式完成(这是您的要求)。
注:
- 广告商和浏览器的服务类型必须相同。
- 确保您确认协议(MCNearbyServiceAdvertiserDelegate、MCNearbyServiceBrowserDelegate)。
- 确保在执行所有这些步骤之前已正确初始化会话。
我正在制作一个在手机之间传输数据的应用程序。如何在没有 MCBrowserViewController
的情况下以编程方式连接和接受来自另一台设备的连接请求我在multipeer connectivity framework工作,希望能帮到你。
第 1 步:
您可以使用 MCNearbyServiceAdvertiser 通过自定义服务类型为自己做广告,例如:
let advertiser = MCNearbyServiceAdvertiser.init(peer: *peerID*, discoveryInfo: *dict*, serviceType: *custom_service_type*)
设置委托,开始宣传自己。
第 2 步:
在其他设备中,用户 MCNearbyServiceBrowser
let browser = MCNearbyServiceBrowser.init(peer: *peerID*,serviceType: *custom_service_type*)
设置委托并开始浏览同行用户。
第 3 步:
当浏览器发现一些用户处于同一 Wi-fi 网络且具有相同的服务类型时,您将收到一个委托回调到
func browser(_ browser: MCNearbyServiceBrowser, foundPeer peerID: MCPeerID, withDiscoveryInfo info: [String : String]?)
第 4 步:
手动尝试连接到对等点
browser.invitePeer(*peerID*, to: *session*, withContext: nil, timeout: 30)
第 5 步:
在第一个设备中,您将在委托方法中收到一个回调,说明对等设备想要连接
func advertiser(_ advertiser: MCNearbyServiceAdvertiser, didReceiveInvitationFromPeer peerID: MCPeerID, withContext context: Data?, invitationHandler: @escaping (Bool, MCSession?) -> Void)
使用真值调用完成处理程序并共享您的会话
invitationHandler(true,*session*)
这里我们不需要任何用户交互。所有都以编程方式完成(这是您的要求)。
注:
- 广告商和浏览器的服务类型必须相同。
- 确保您确认协议(MCNearbyServiceAdvertiserDelegate、MCNearbyServiceBrowserDelegate)。
- 确保在执行所有这些步骤之前已正确初始化会话。