【发布时间】:2015-07-03 14:27:10
【问题描述】:
我正在实现一个处理自定义协议的 iOS 应用。 在我的 AppDelegate 中编写方法 application(openURL:sourceApplication:annotation:) 很容易,但我遇到了一个问题:我希望 - 一旦用户完成请求 - 我的应用程序移到后台并将用户发送回来到调用者 sourceApplication(例如浏览器、二维码阅读器或任何其他应用程序)。
这就像 "tel:" 和 "telprompt:" url 调用之间的区别:在前一种情况下,电话应用程序保持活动状态,在后一种情况下,调用后,用户被发送回源应用程序。
为了让我的应用程序像“telprompt:”那样处理我的自定义协议,我能想到的唯一方法是在用户操作完成后终止应用程序......但这违反了 iOS 人机界面指南(他们说“不要以编程方式退出”),我的应用可能会被 Apple 拒绝。
在 Android 上这很容易:您使用 Activity 响应 Intent,当您对该 Activity 调用 finish() 时,用户将返回到他之前的应用程序/浏览器/其他任何内容。
有人知道在 iOS 上实现此目的的好方法吗?
澄清一下:
我的应用不调用 openUrl,它响应来自浏览器、二维码阅读器、其他应用的 openUrl 请求;
我不用打电话;
当我处理一个请求时,我向用户询问一些数据,联系服务器,就是这样:交互已完成,如果不让用户使用主页按钮。
【问题讨论】:
标签: ios