2014-10-11 2 views
0

Я использую этот код, чтобы открыть приложение ITunes Store, и поиск конкретной музыки:Невозможно искать в Itunes Store, на iOS8

NSString *iTunesLink = [NSString stringWithFormat:@"http://search.itunes.apple.com/WebObjects/MZSearch.woa/wa/search?entity=album&media=all&page=1&restrict=true&startIndex=0&term=TERM_NAME"]; 
NSURL *url = [NSURL URLWithString:iTunesLink]; 
[[UIApplication sharedApplication] openURL:url]; 

код прекрасно работает на iOS7, изменив значение TERM_NAME я могу искать все, что я хотеть. Вопрос о iOS8 что-то поиск по ключевому слову добавляется и предваряется путем (") символов. Я использую журнал, чтобы проверить, что это значение моего NSURL, но она выглядит хорошо.

enter image description here

+0

у меня точно такая же проблема ... где вы в состоянии решить эту – Gooner

+0

@Gooner - я был в состоянии сделать эту работу, используя фрагмент кода перечисленных ниже –

ответ

1

Этот код работал я:?.

NSString *artist = @"artist"; 
NSString *title = @"title"; 

NSOperationQueue *operationQueue = [NSOperationQueue new]; 
NSString *baseURLString = @"https://itunes.apple.com/search"; 
NSString *searchTerm = [NSString stringWithFormat:@"%@ %@", artist, title]; 
NSString *searchUrlString = [NSString stringWithFormat:@"%@?media=music&entity=song&term=%@&artistTerm=%@&songTerm=%@", baseURLString, searchTerm, artist, title]; 
searchUrlString = [searchUrlString stringByReplacingOccurrencesOfString:@" " withString:@"+"]; 
searchUrlString = [searchUrlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

NSURL *searchUrl = [NSURL URLWithString:searchUrlString]; 

NSURLRequest *request = [NSURLRequest requestWithURL:searchUrl]; 
[NSURLConnection sendAsynchronousRequest:request queue:operationQueue completionHandler:^(NSURLResponse* response, NSData* data, NSError* error) 
{ 
    if (error) 
    { 
     NSLog(@"Error: %@", error); 
    } 
    else 
    { 
     NSError *jsonError = nil; 
     NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError]; 

     if (jsonError) 
     { 
      NSLog(@"JSON Error: %@", jsonError); 
     } 
     else 
     { 
      NSArray *resultsArray = dict[@"results"]; 

      if(resultsArray.count == 0) 
      { 
       dispatch_async(dispatch_get_main_queue(), ^{ 
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"917xfm" message:[NSString stringWithFormat:@"No results returned."] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
        [alert show]; 
        [alert release]; 
       }); 
      } 
      else 
      { 
       NSDictionary *trackDict = resultsArray[0]; 
       NSString *trackViewUrlString = trackDict[@"trackViewUrl"]; 

       if (trackViewUrlString.length) 
       { 
        NSURL *trackViewUrl = [NSURL URLWithString:trackViewUrlString]; 

        dispatch_async(dispatch_get_main_queue(), ^{ 
         [[UIApplication sharedApplication] openURL:trackViewUrl]; 
        }); 
       } 
      } 
     } 
    } 
}]; 
+0

Спасибо так много Максим, у меня есть один маленькая проблема, я сейчас изучаю, но, возможно, это то, о чем вы знаете. Результаты json, полученные из моего поиска, все для в US itunes store, но я действительно хочу настроить таргетинг на магазин iTunes в Ирландии. – Gooner

+0

Получил его, просто исправить, просто добавьте «country = country_code» в строку поиска, если вы хотите настроить таргетинг на определенную страну. Еще раз спасибо! – Gooner

Смежные вопросы