Monday, August 13, 2018

Do any iOS Action extensions really return a value?

Leave a Comment

To understand this question, return with me now through the WWDC time machine to the distant past, 2014, when Action extensions were introduced and explained in this video:

https://developer.apple.com/videos/play/wwdc2014/217/

About halfway through, in slide 71, about minute 23:30, the presenter gives instructions for returning a value back to the calling app (the app where the user tapped our Action extension's icon in an activity view):

- (IBAction)done:(id)sender {     NSData *data = self.contents;     NSItemProvider *itemProvider =          [[NSItemProvider alloc] initWithItem:data typeIdentifier:MyDocumentUTI];     NSExtensionItem *item = [[NSExtensionItem alloc] init];     item.attachments = @[itemProvider]; } 

A moment later, slide 75, about minute 26, we see how the app that put up the activity view controller is supposed to unwrap that envelope to retrieve the result data:

- (void)setupActivityViewController {     UIActivityViewController *controller;     controller.completionWithItemsHandler =          ^(NSString *activityType, BOOL completed,            NSArray *returnedItems, NSError *error) {             if (completed && (returnedItems.count > 0)) {                 // process the result items             }          }]; } 

So my question is: is that for real? Has anyone within the sound of my voice ever done either of those things? Namely:

  • Does your app have an Action extension that returns a value to the caller?

  • Does your app put up an activity view controller that receives the result of some arbitrary unknown Action extension and does something with the value?

I ask because (1) I have never seen (on my iPhone) an Action extension that actually returns a value, and (2) the code elided in "process the result items" seems to me to be complete hand-waving, because how would my app even know what kind of data to expect?

I have come to believe that this code is an aspirational pipe dream with no corresponding reality. But I would be delighted to be told I'm wrong.

0 Answers

If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment