【问题标题】:Communication between two applications两个应用程序之间的通信
【发布时间】:2017-09-28 16:33:10
【问题描述】:

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

【问题讨论】:

  • 除了非常特殊的用途,iOS 不允许应用程序在后台运行
  • 您的后台应用程序将被限制为 Apple 当前的 10 次限制超时。如果您确实让两个应用程序通信,那么大约 9 分钟您可以使用 URL 方案让应用程序切换位置。

标签: objective-c ios


【解决方案1】:

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

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

  2. 1234563对于某些应用程序,例如 mail.tel 等。但是其中一个应用程序会出现在前台。

就像你可以拨打一个电话号码一样,它是内置在应用程序中的:-

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,它提供应用内支持,可以在某些文件之间进行交互。(沙盒环境禁止完全访问,甚至禁止可以修改其他应用程序数据的访问)。喜欢它可以用来预览邮件应用程序中的文件或下载附件。但是您不能为其他应用程序修改它们,当然您可以复制并为您的应用程序修改它。

【讨论】:

    【解决方案2】:

    我不认为这正是你想要的,但它肯定会让你在应用程序之间进行交互。

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

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

    【讨论】:

    • 这会将“目标”应用程序带到前台。
    • 我检查了链接,凯文是对的。 “目标”应用程序应保留在后台。
    • 好的。这是我能想到的最接近您的问题的方法。为什么它必须是两个不同的应用程序?
    猜你喜欢
    • 2016-07-27
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多