如果其他应用程序调用 openURL: 使用有效 URL,UIApplication 会阻止应用程序移动到前台

Posted

技术标签:

【中文标题】如果其他应用程序调用 openURL: 使用有效 URL,UIApplication 会阻止应用程序移动到前台【英文标题】:UIApplication prevent app moving to foreground if other app calls openURL: with valid URL 【发布时间】:2013-05-12 11:22:03 【问题描述】:

如果其他应用程序使用有效 URL 调用 openURL:,我们能否阻止应用程序移至前台。我只需要保存来自 URL 的数据;调用方应用程序应保持在前台,接收方应用程序应保持在后台。

例如:第一个应用调用[[UIApplication sharedApplication] openURL:@"validURL://"],第二个应用处理调用- (BOOL) application:(UIApplication *)app handleOpenURL:(NSURL *)url,处理URL,但不移动到前台

【问题讨论】:

ios 6 中不可能 【参考方案1】:

不,但您可能想查看x-callback-url 运动,看看是否有帮助。基本上,它不会阻止您进入后台,但它允许您接收另一个 URL,然后您可以使用该 URL 将原始应用程序带回前台。

【讨论】:

感谢x-callback-url。我已经在我的应用程序中实现了类似的东西,接收者应用程序将控制权返回给调用者应用程序,但主要问题仍然是实际的,我需要防止调用者移动到前台状态 没有让应用程序在后台运行并打开本地(不是互联网)TCP 连接到它,如果不把它带到前台,真的没有办法与应用程序通信,因为“不",来自@phix23,我都表示过。 @gaige,您之前是否设法在没有互联网的情况下打开到内部应用程序的 TCP 连接?您可以分享任何指向您的工作、博客或教程的链接吗?提前感谢 @RavindranathAkila 我目前没有可以共享的任何代码,但该过程基本上是使用 CFPort(不是 TCP)或套接字创建一个侦听器并在本地绑定它然后连接使用前台应用程序。剩下的问题是找到一种方法让您的应用在后台保持运行。 @gaige 谢谢!这很有帮助。是的,后台运行总是一个挑战。需要弄清楚。

以上是关于如果其他应用程序调用 openURL: 使用有效 URL,UIApplication 会阻止应用程序移动到前台的主要内容,如果未能解决你的问题,请参考以下文章

使用动态链接首次下载后更新应用程序时未调用 openURL 方法

application:openURL:sourceApplication:annotation: 有 MainWindow.xib 时不调用

调用openURL后iOS 9.3冻结

如何从 UI Xctest 调用 Appdelegate 的“OpenURL”功能

Swift 中的应用程序 openURL

如何拦截任何 UIApplication openURL 调用?