Получить и установить NSUserActivity в targetC - PullRequest
0 голосов
/ 03 января 2019

Я попробовал приведенный ниже код, чтобы установить и получить NSUserActivity, но он не работает для меня.Я не могу получить данные для большей активности. Я тестирую приведенный ниже код на устройстве с iOS версии 10 и выше.Установите NSUserActivity в callkit:

NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@"INStartAudioCallIntent"];
    activity.title = @"title";
    activity.delegate = self;
    activity.needsSave = YES;
    activity.webpageURL = [NSURL URLWithString:@"https://www.google.com"];
    activity.userInfo = @{@"name": @"test", @"deep_link": @"test"};
    // set requiredUserInfoKeys if you're also setting webPageURL !!
    // otherwise, userInfo will be nil !!
   activity.requiredUserInfoKeys = [NSSet setWithArray:@[@"name", @"deep_link"]];
    activity.eligibleForSearch = YES;
    activity.eligibleForPublicIndexing = YES;
    [activity becomeCurrent];


- (void)userActivityWillSave:(NSUserActivity *)userActivity {
    userActivity.userInfo = @{@"name": @"test", @"deep_link": @"test"};
    NSLog(@"userActivityWillSave");
}

- (void)updateUserActivityState:(NSUserActivity *)userActivity {
    NSLog(@"updateUserActivityState");
    [userActivity addUserInfoEntriesFromDictionary:@{@"name": @"test", @"deep_link": @"test"}];
}

в info.plist: NSUserActivityTypes как INStartAudioCallIntent INStartAudioCallIntent

в Appdelegate.m:

- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
 restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> *restorableObjects))restorationHandler{
     NSLog(@" Userinfo Data==>%@  useractivityTitle ==>%@  activityType-->%@ webpage-->%@",userActivity.userInfo , userActivity.title,userActivity.activityType,userActivity.webpageURL );
    return YES;
}

Примечание: я проверил код дляSpeakerbox.

...