MPMediaQuery ожидает завершения диалога Media перед обратным вызовом - PullRequest
0 голосов
/ 27 сентября 2018

Моя цель - установить мост между iOS и response-native и вернуть обратно все названия подкастов.Мост, кажется, работает, и заголовки подкастов возвращаются, однако настроенный мной обратный вызов вызывается сразу, а не после того, как пользователь принял приглашение «Права доступа к медиа» (подсказка ниже)

enter image description here

Таким образом, обратный вызов не вернет названия подкастов, поскольку я не авторизован, однако, если я вызову функцию после того, как пользователь нажал «ОК», что означает, что я авторизован, то возвраты названий подкастовдолжным образом.Потому что мне не нужно ждать ответа на диалог.Поэтому мой вопрос заключается в том, как мне дождаться ответа на диалог, прежде чем вызывать мой обратный вызов с заголовками подкастов.

Вот моя функция для получения заголовков подкастов:

RCT_EXPORT_METHOD(requestPodcastTitles: (RCTResponseSenderBlock)callback)
{
    MPMediaQuery *query = [[MPMediaQuery alloc] init];
    [query setGroupingType: MPMediaGroupingPodcastTitle];
    NSArray *podcasts = [query collections];
    NSMutableArray *mutablePodcastsToSerialize = [NSMutableArray array];

    for (MPMediaItemCollection *podcast in podcasts) {
      MPMediaItem *representativeItem = [podcast representativeItem];
      NSString *podcastTitle =
      [representativeItem valueForProperty: MPMediaItemPropertyPodcastTitle];\
      NSLog (@" Podcast Title: %@", podcastTitle);
      NSDictionary *podcastDictionary = @{@"podcastTitle": podcastTitle};
      [mutablePodcastsToSerialize addObject:podcastDictionary];

    }

    callback(@[[NSNull null], mutablePodcastsToSerialize]);
    return;
}

Любая идеячто нужно сделать, чтобы дождаться окончания запроса перед возвратом обратного вызова?

1 Ответ

0 голосов
/ 27 сентября 2018

Проблема в том, что вы не звонили MPMediaLibrary.requestAuthorization().Если вы это сделаете, он перезвонит вам, когда диалог исчезнет, ​​и теперь вы можете продолжить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...