iOS URL Scheme,完成后返回Safari

时间:2011-08-06 22:59:31

标签: iphone ios ipad openurl

我想实现类似于mailto在Safari中的工作方式的自定义URL方案。在我的HTML中,我有一个指向我的自定义方案的链接(例如,myapp:// parms),它将调用我的应用程序,其中定义了myapp方案。当myapp完成后,我想返回Safari浏览器页面。如果你有'mailto:',邮件应用程序有一个取消按钮。如果您按下它,或者执行发送,完成后它会消失并且Safari页面就在那里。

我知道我不应该杀了我的应用程序。如果我尝试,它会回到家里而不是Safari。我怎样才能让自定义方案应用程序消失(隐藏?)完成后调用应用程序又回来了?

2 个答案:

答案 0 :(得分:4)

您可以让方案指定一个回调URL,在完成任务后打开该URL。例如,

myapp://dosomeaction?callback=http://referring-site.com

然后您只需阅读回调网址并使用openURL:即可。您甚至可以添加一些额外的参数来指示调用者的成功/失败。

答案 1 :(得分:3)

这里最好的选择是使用自定义方案传递您要返回的URL。换句话说,您可以对“回调”URL进行URL编码,并将其作为元素放在用于打开应用程序的URL中。

当您的应用程序完成其任务时,它会使用打开时收到的数据,使用[[UIApplication sharedApplication] openURL:yourURL]方法再次打开URL。