没有使用Web服务的iPhone应用程序通信

时间:2010-09-29 19:06:51

标签: iphone objective-c cocoa-touch

我想从一个iphone应用程序向其他iphone应用程序发送一些Text加上一个图像,但限制是我不应该在通信之间使用Web服务器,有没有办法实现它? 详细信息:有两个独立的设备,可能远远超出网络。我的要求一个应用程序添加一些文本与图像,并将其发送到另一个可以在任何长距离的iPhone,并安装在另一个iPhone的应用程序将读取该信息和图像自己。

4 个答案:

答案 0 :(得分:3)

远远没有足够的信息来提供具体的答案。

  • 两个不同设备上的两个应用程序?
  • 是同一网络上的两台设备吗?
  • 是WiFi上的两个设备吗?
  • 如果应用未运行,您是否需要用户接收通知?

如果在同一设备上,您可以在目标应用中定义自定义URL处理程序,然后在源应用中定义openURL:以传递数据。将图像和文本编码到URL中,但要注意大小限制。

如果在不同的设备上,有许多可能的解决方案,但回答上述问题对于真正了解适当的解决方案至关重要。


鉴于你的评论 - 两个应用程序,不同的设备,任意网络 - 那么你将不得不在它们之间拥有某种服务器。请注意,最近添加的游戏中心确实能够对两个用户进行会合,但它具有非常特殊的用户体验,可能不适合您的需求。

我建议您调查使用推送通知来通知接收用户内容的可用性。至于在两者之间移动内容,不可能直接连接,并且您必须在它们之间安装某种存储转发服务器。而且,是的,一个Web服务器将是最简单的解决方案,因为HTTP现在无处不在。

答案 1 :(得分:3)

实际上有一种解决方案可以满足您的需求 - 并且符合bbums的答案:

使用cocoahttpserver在iPhone上创建HTTP服务器。比你会问一些像whatismyip.com这样的网络服务你的公共IP。有了这个,您的iPhone可以在全球范围内连接 但很可能你的wifi网络没有将你的端口转发到iPhone。灰。
即使:现在变得困难。如何将IP从一部手机发布到另一部手机?嗯... - 我明白了:我会在一个集中的空间里交换信息!在网上!
......等等 - 这将是一个Web服务器。

您会看到:如果网络中没有任何类型的服务器,用户需要手动交换IP并拥有完整的管理权限和有关本地网络的知识。
所以恕我直言bbums回答是唯一的方法。


PS:我正在使用在iPhone上运行的http服务器。在本地网络中运行良好,特别是与bonjour。你可以通过远程网络使用它们 - 但只能重新配置路由器 - 你不应该强迫用户这样做

答案 2 :(得分:2)

如果没有任何类型的网络,但双方都有业余无线电许可证,那么将这两个设备连接到HF分组无线电可能会有效。

答案 3 :(得分:2)

这太超级了。

  1. 我会编写一些可以将数据转换成调制解调器信号的软件,​​就像旧的拨号调制解调器一样。该设备实际上会发出令人讨厌的嗡嗡声。
  2. 您可以获得离您最近的固定电话的朋友的电话号码并给他打电话。
  3. 他将iPhone放在手机接收器的监听模式附近,然后使用声音调制解调器连接到手机。
  4. Bingo,通过你发送的数据在他的设备上解码的声音,以及非常便宜的电话价格,这些天都很便宜,特别是如果你使用Skype。