试图使用[self.extensionContext openURL:… completionHandler:…];在iOS 8共享扩展中打开包含应用程序永远不会打开应用程序,并始终调用成功处理程序成功=否.
Here与Action扩展相同,但我认为Share扩展能够打开包含应用程序而不是Action扩展更合理.共享扩展的要点是上传一个可能很大的数据,并且不打开应用程序的唯一方法是通过NSURLSession,它只能执行HTTP(S)上传.但是应用程序可能希望通过与HTTP(S)上载不同的机制来共享内容.
Apple文档未声明openURL …不能用于任何特定类型的扩展.很难知道这是一个错误还是预期的行为.没有关于此的官方信息.
解决方法
以下是一些可能的解决方法……
Communicating with/opening Containing app from Share extension
实际工作的可以总结为:
>使用UIDocumentInteractionController并使用特殊扩展类型注册容器应用程序,以从您的扩展程序打开容器应用程序
>使用虚拟NSURLSessionTask获取应用程序:handleEventsForBackgroundURLSession:completionHandler:要调用的容器应用程序的UIApplicationDelegate类的方法.然后,在该方法中,您可以调用[[UIApplication sharedApplication] openURL:url]打开您想要的任何内容.
这些方法都不是完美的,但它们确实有效(不确定Apple是否会喜欢它们).有关详细信息,请查看链接.希望这可以帮助 :)
编辑:您还可以使用描述https://stackoverflow.com/a/24614589/3923882的UIWebView