使用URL Schemes进行iOS Inter App通信

Sin*_*ese 3 cocoa-touch objective-c ios

我有2个iPhone应用程序安装在同一设备,应用程序A和应用程序B.应用程序A没有任何远程服务器连接.app A必须调用app B进行远程服务器通信.应用程序B将进行服务器调用并将响应返回给应用程序A.我想使用"Apple URL Schemes"进行此Inter App通信.问题是,当应用A调用应用B时,应用A将转到后台,应用B将进入前台.但我想在没有用户注意的情况下进行此通信.应用A应始终位于用户的前台.

所以解决方案可以是这样的.app A为服务器调用调用app b.应用程序A将进入后台模式,应用程序B将进入前台.应用A中的方法将检测背景模式并将其带回前景.类似地,应用B中的方法将检测前景模式并在几秒钟内将其恢复到背景.因此,当应用程序切换时,用户将只看到一些闪烁的屏幕.应用B将在后台执行任务并将结果返回给应用A.

我想知道这是否可以在iOS中处理?任何建议都非常感谢.

sha*_*sha 6

你可以试试这样的东西.我在这里理论化,不确定步骤#5-6是否真的有效,但我认为值得尝试

  • App A通过URL方案调用app B: openUrl: @"appB://startsomething"
  • 应用B变为活动状态,用户将看到该切换
  • 应用B开始网络通信并立即将控制权发送回应用A: openUrl: @"appA://resume
  • 应用程序A变为活动状态,用户将再次看到该切换(因此基本上应用程序A将轻弹到应用程序B并返回
  • App B正在处理网络请求,当它完成时,它再次使用openUrl向App A发送信息: openUrl: @"appA://data=GOT_DATA"
  • 应用程序A已经处于活动状态,但它应该接收此调用并解析数据

  • 是否可以在没有任何UI的情况下制作应用B,以便用户始终可以看到应用A? (2认同)