微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – openURL在Share扩展中不起作用

试图使用[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

原文地址:https://www.jb51.cc/iOS/327819.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐