gpt4 book ai didi

ios - openURL 在共享扩展中不起作用

转载 作者:可可西里 更新时间:2023-11-01 03:43:23 25 4
gpt4 key购买 nike

尝试在 iOS 8 共享扩展中使用 [self.extensionContext openURL:... completionHandler:...]; 打开包含的应用程序永远不会打开应用程序,并且总是调用完成成功的处理程序 = 否。

Here与 Action 扩展是相同的问题,但我认为 Share 扩展能够打开包含的应用程序比 Action 扩展更合理。 Share 扩展的要点是上传一个潜在的大块数据,在不打开应用程序的情况下执行此操作的唯一方法是通过只能进行 HTTP(S) 上传的 NSURLSession。但是应用程序可能希望通过与 HTTP(S) 上传不同的机制共享内容。

Apple 文档没有声明 openURL... 不能用于任何特定类型的扩展。很难知道这是错误还是预期的行为。没有关于此的官方信息。

最佳答案

这里有一些可能的解决方法... Communicating with/opening Containing app from Share extension

实际工作的可以总结为:

  • 使用 UIDocumentInteractionController 并使用特殊扩展类型注册您的容器应用,以从您的扩展打开您的容器应用
  • 使用虚拟 NSURLSessionTask 获取要调用的容器应用程序的 UIApplicationDelegate 类的 application:handleEventsForBackgroundURLSession:completionHandler: 方法。然后,在该方法中,您可以调用 [[UIApplication sharedApplication] openURL:url] 来打开您想要的任何内容。

这两种方法都不是完美的,但它们确实有效(虽然不确定 Apple 是否会喜欢它们)。有关更多详细信息,您可以查看链接。希望这会有所帮助:)

编辑:您也可以按照描述使用 UIWebView https://stackoverflow.com/a/24614589/3923882

关于ios - openURL 在共享扩展中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24895093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com