两个应用程序之间的通

时间:2012-05-15 19:35:25

标签: objective-c ios

是否可以在两个不同的应用程序之间进行通信,一个在后台运行,另一个在前台运行?如果是的话,有人可以提出建议吗?

2 个答案:

答案 0 :(得分:5)

是可以在iPhone中的两个应用程序之间进行通信,但仅限于少数情况。

  1. 根据某些事件(如电话等),可能会有应用程序需要发送到后台。在这种情况下,您必须配置音频会话对象(基于Voip的应用程序)并相应地发送通知。

  2. 前面的例子只是在灵活性极低的应用程序之间进行交互(在一些重要的内置事件中将应用程序发送到后台)。另一种方法是通过URL Schemes,apple有一些内置的功能和支持对于某些应用程序,例如mail.tel等,但其中一个应用程序将出现在前台。

  3. 就像您可以拨打电话号码一样,该电话号码是在应用程序中构建的: -

    NSString *phURL= [NSString stringWithFormat:@"tel:%@", [NSString StringWithString:@"1-800-555-1212"]];
    NSURL *phoneURL = [NSURL URLWithString:phURL];
    [[UIApplication sharedApplication] openURL:phoneURL]];
    

    顺便提一下,如果你需要实现一个Custom URL Schemes,那就很有趣了。

    1. 另一种方式是通过UIDocumentInteractionController提供应用内支持,以便在某些文件之间进行交互。(沙盒环境禁止完全访问,甚至可以修改其他应用程序的数据)。就像它可以使用预览邮件应用程序中的文件或下载附件。但是你无法为其他应用程序修改它们,当然你可以复制它并为你的应用程序修改它。

答案 1 :(得分:1)

我认为这不是你想要的,但它绝对允许你在应用程序之间进行交互。

https://developer.apple.com/library/IOs/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW18

它只是使用URL方案来激活命令并在另一个应用程序中打开。只是尽量避免在自己的应用程序中使用apple默认值。