我在互联网上浏览了很多文章,大多数人说IOS应用程序允许使用协议处理程序(URL方案)进行IPC。但是,如果一个应用程序打开了一个端口而另一个试图连接到端口,我们是否不能使用套接字来实现IPC?
iOS8通过为所谓的“应用程序组”公开mach 端口来引入 IPC 支持。看看这个很棒的教程:
http://ddeville.me/2015/02/interprocess-communication-on-ios-with-mach-messages/
它需要一些设置(在开发门户中定义应用程序组、生成适当的权利等),但实际上并不是那么困难,Xcode 6 会自动完成大部分工作(只需在常规功能部分中启用“应用程序组”) 。
我可以确认,它有效(我能够创建 2 个相互发送消息的应用程序)。
在 iO7 上,没有对 IPS 的官方支持,但如果您不打算将应用程序上传到 AppStore,则可以尝试利用应用程序间音频通信来实现此目的。查看 Apple 的代码示例,该示例演示了 3 个应用程序之间的应用程序间声音数据流:
https://developer.apple.com/library/ios/samplecode/InterAppAudioSuite/Introduction/Intro.html
相关 WWDS 视频:
https://developer.apple.com/wwdc/videos/#602
我还没有尝试将它用于非音频用途,但看不出它不起作用的原因。数据速率很高,声音数据只是字节,不必重定向到扬声器,而是可以按照您喜欢的方式进行解释。
当然,在AppStore审核中会被拒绝,但对于企业或自己使用来说还是可以的。
不,这不是有几个原因。1) Apple 内部不允许这样做,并且有安全层来防止这种情况。2) 应用程序在短暂延迟后触发 applicationDiD/WillEnterBackground,此时您与其交互的方式会急剧下降。
如果您确实想在应用程序之间发送数据,请设置一个带有证书的服务器来匹配您的应用程序,以便您可以使用 APN(苹果推送通知)以静默推送方式将数据发送到应用程序。然后,在服务器上设置触发这些发送的端点,并让应用程序使用服务器公开的 API。
| 归档时间: |
|
| 查看次数: |
5579 次 |
| 最近记录: |