iOS 9 - NSUserActivity userinfo property showing null
Hi could you check in your continueUserActivity snippet:
if ([userActivity.activityType isEqualToString:@"com.test.activity"])
{
NSString *locationName = [[userActivity.userInfo objectForKey:@"location"] valueForKey: @"name"];
}
If it doesn't go there I assume that you have Core Spotlight integrated in your app and you get in Spotlight exactly by these elements from Core Spotlight.
Hope it was helpful.
P.S. At the moment(Xcode 7 beta 3) many developers can't get Search API through NSUserActivity to work, including me.
I'm working in iOS 9 beta 5, and another way that userInfo
may be nil within the application:continueUserActivity:restorationHandler:
is if you have also set NSUserActivity
's webPageURL
property. If you set the webPageURL
property and would like userInfo
to not be nil, then you will need to include the appropriate keys in NSUserActivity
's requiredUserInfoKeys
property. This took me forever to figure out, but shame on me for missing this in the docs.
NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:activityType];
activity.title = @"title";
activity.webpageURL = [NSURL URLWithString:webLinkUrlString];
activity.userInfo = @{@"id": webLinkUrlString, @"deep_link": deepLinkUrl};
// set requiredUserInfoKeys if you're also setting webPageURL !!
// otherwise, userInfo will be nil !!
activity.requiredUserInfoKeys = [NSSet setWithArrays:@[@"id", @"deep_link"]];
activity.eligibleForSearch = YES;
activity.eligibleForPublicIndexing = YES;
activity.contentAttributeSet = attributeSet;
activity.keywords = [NSSet setWithArray:keywordsArray];
self.activity = activity;
[self.activity becomeCurrent];