3

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

我知道我不应该杀死我的应用程序。如果我尝试,它会回到家,而不是 Safari。完成后如何让我的自定义方案应用程序消失(隐藏?)以便调用应用程序返回?

4

2 回答 2

4

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

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

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

于 2011-08-07T00:35:10.630 回答
3

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

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

于 2011-08-07T00:35:19.223 回答