CFNetwork和Bonjour集成,用于iPhone到Mac的集成。

20

我希望能够使用CFNetwork和Bonjour协作,实现我的iPhone应用程序与Mac应用程序之间的通信。在iPhone应用程序上会有一个按钮,而在Mac应用程序上会有一个标签。如果在iPhone应用程序上按下该按钮,则会更改Mac应用程序上的标签。

是否有示例代码可供使用?如果没有,能否有人指导我正确的方向?

谢谢!

2个回答

44
Bill Dudney创建了一个样例iPhone Bonjour应用程序,以展示如何使用Bonjour发现和连接两个iPhone。我将此示例移植到Mac上,以展示如何在两个平台之间进行Bonjour发现。Bill还提供了一个很好的撰写,介绍了他如何组合使用在此示例中使用的Bonjour包装器。

这是一个非常简单的示例,使用Mac和iPhone客户端可以做类似于您想要的事情。只需要进行微小的修改即可。

我在我的iTunes U高级iPhone开发课程的网络会话视频中展示了它的实际操作。


2
@Elijah Wood - 只需将基本SDK更改为4.0(或您当前的开发环境支持的任何版本),他的示例应该可以编译和运行得很好。 - Brad Larson
1
@BradLarson,如何最好地保存所选服务器,以便用户在下一次使用时无需再次选择服务器?我希望我的应用程序能够记住用户选择的服务器,并在将来/下一次启动时自动连接到该服务器,直到用户决定选择其他服务器。有什么想法吗?这让我感到困惑。谢谢。 - 0SX
有人知道这种做法是否可以在iOS应用商店上被允许吗? - spring
品牌,有没有办法在Mac和iOS应用程序之间发送UI触摸事件通信?就像当我在我的Mac应用程序中点击某个点(假设x-origin:100,y-origin:200)时,将该点击事件发送到iOS应用程序并在同一点上执行点击。这是可能的吗? - AskIOS
@BradLarson 您好,您提供的bill.dudney链接已经失效。我想构建一个点对点服务,不像MCSession那样有8个节点的限制(我希望是无限制或者更大一些)。从了解到Bonjour是可行的方式。您是否有Bill Dudney在Swift中使用Bonjour代码的参考/链接?我不会Obj-C。这是我的问题更清晰的表述:https://stackoverflow.com/questions/60349499/swift-does-the-bonjour-nsnetservicebrowser-have-a-peer-limit-larger-then-mcsess - Lance Samaria

6

这个做得非常好!我只是想知道是否可能控制你为Mac和iOS应用程序创建的这两个应用程序之间的UI事件?例如,当我在我的Mac应用程序中点击某个点(比如x-origin:100,y-origin:200)时,将该点击事件发送到iOS应用程序,并在iOS应用程序中的同一点上执行相同的点击。这种操作可能吗? - AskIOS
当然是完全可能的。发送x,y位置作为消息,iOS端接收并拦截该消息以定位事件。 - Boobalan
请问您是否能提供一个示例,说明如何实现这个功能?实际上,我可以使用套接字会话从 Mac 应用程序向 iOS 应用程序发送消息,但唯一的问题是无论当前前台应用程序是哪个,都无法在 iPhone 屏幕上执行点击事件。请问您能否给我一些示例代码来实现这个功能? - AskIOS
在 iPhone 屏幕上执行点击事件,无论当前前台应用程序是哪个,似乎有些棘手。我怀疑这是否可能! - Boobalan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接