主机应用程序在哪里处理NSExtensionContext#completeRequest?

时间:2018-10-08 09:33:15

标签: ios ios-app-extension replaykit

当您从分机呼叫completeRequest(returningItems:completionHandler:)时,主机应用程序在哪里处理此问题?

1 个答案:

答案 0 :(得分:0)

免责声明:没有检查我的假设,但这可能会有所帮助。

1)documentation状态:

  

调用completeRequestReturningItems:completionHandler:方法,   通知主机应用其原始请求已完成

2)here-图2-3显示“ Host” -app-是使用扩展功能开始工作的应用程序。例如,“主机”可以是用户触摸“共享”按钮的应用程序。然后,此“主机”应用将一些数据(用户要共享)发送给扩展程序。

3)我认为,“共享数据”扩展是非常常见的扩展示例。非常有可能UIActivityViewController中的某处必须是实现completeRequest(returningItems:completionHandler:)所要查找的内容以及从扩展名调用的方法。 这就是我发现的:

@property(nullable, nonatomic, copy) UIActivityViewControllerCompletionWithItemsHandler completionWithItemsHandler NS_AVAILABLE_IOS(8_0); // set to nil after call

documentation关于此属性的说明:

  

活动完成或活动视图控制器被解雇后,将执行视图控制器的完成块。

和:

  

returnedItems-   包含任何已修改数据的NSExtensionItem对象的数组。使用此数组中的项目获取扩展名对原始数据所做的任何更改

再次,我没有测试。但是此属性看起来就像您要查找的处理程序。