2

我面临应用程序扩展关闭问题,如果有人知道我在做什么错,请告诉我。我在扩展内部执行一些操作后使用操作扩展,我需要返回响应。

示例代码

// With Success Case
- (void) completeActionWithItems: (NSString *) response {
    NSExtensionItem *extensionItem = [[NSExtensionItem alloc] init];
    extensionItem.attachments = @[[[NSItemProvider alloc] response typeIdentifier: (NSString *)kUTTypePlainText]];
   [self.extensionContext completeRequestReturningItems: @[extensionItem] completionHandler: nil];
}


// With Error Case
- (void) completeActionWithError: (NSError *) error {
     [self.extensionContext cancelRequestWithError: error];
}

成功案例工作正常但有一段时间没有结束,错误案例在代码上方不起作用。请让我知道出了什么问题。谢谢

4

1 回答 1

1

当你创建一个动作扩展时,这是关闭动作扩展视图控制器的默认方法:

- (IBAction)done {
// Return any edited content to the host app.
// This template doesn't do anything, so we just echo the passed in items.

[self.extensionContext completeRequestReturningItems:self.extensionContext.inputItems completionHandler:nil];
}

由于已经提供了这个方法,你应该尝试从你的成功方法中调用它。

// With Success Case
- (void) completeActionWithItems: (NSString *) response {
NSExtensionItem *extensionItem = [[NSExtensionItem alloc] init];
extensionItem.attachments = @[[[NSItemProvider alloc] response typeIdentifier: (NSString *)kUTTypePlainText]];
   [self.extensionContext completeRequestReturningItems: @[extensionItem] completionHandler: nil];

// Call to "done" method
[self done];
}
于 2015-04-30T16:10:00.280 回答