Ответ 1
Вы должны использовать deeplinks, чтобы открывать кнопки в приложении Apple Music: https://affiliate.itunes.apple.com/resources/documentation/linking-to-the-itunes-music-store/
Прежде всего, вам необходимо запросить авторизацию через API SKCloudServiceController, чтобы проверить свои возможности (например, если ваше устройство позволяет воспроизводить треки Apple Music).
[SKCloudServiceController requestAuthorization:^(SKCloudServiceAuthorizationStatus status) {
self.cloudServiceController = [[SKCloudServiceController alloc] init];
[self.cloudServiceController requestCapabilitiesWithCompletionHandler:^(SKCloudServiceCapability capabilities, NSError * _Nullable error) {
[self.cloudServiceController requestStorefrontIdentifierWithCompletionHandler:^(NSString * _Nullable storefrontIdentifier,
NSError * _Nullable error) {
NSString *identifier = [[storefrontIdentifier componentsSeparatedByString:@","] firstObject];
identifier = [[identifier componentsSeparatedByString:@"-"] firstObject];
NSString *countryCode = [self countryCodeWithIdentifier:identifier];
}];
}];
}];
Затем вы сможете запросить идентификатор магазина, который вы собираетесь использовать для определения кода страны. Я предлагаю включить в проект файл .plist со всеми идентификаторами и соответствующими кодами стран. (здесь вы можете найти файл .plist https://github.com/bendodson/storefront-assistant/blob/master/StorefrontCountries.plist). Вам нужен код страны для запросов API Apple Music.
- (NSString *)countryCodeWithIdentifier:(NSString *)identifier {
NSURL *plistURL = [[NSBundle mainBundle] URLForResource:@"CountryCodes" withExtension:@"plist"];
NSDictionary *countryCodeDictionary = [NSDictionary dictionaryWithContentsOfURL:plistURL];
return countryCodeDictionary[identifier];
}
После того, как у вас есть соответствующий код страны, вы сможете искать трек в API Apple Music. Сделайте запрос GET https://itunes.apple.com/search, используя следующие параметры:
NSDictionary *parameters = @{
@"isStreamable" : @(YES),
@"term" : @"your search parameter"
@"media" : @"music",
@"limit" : @(5),
@"country" : @"your country code"
};
В ответ на этот запрос вы получите массив результатов трассировки с большим количеством параметров. Одним из них является "trackViewUrl". Просто добавьте следующие параметры в trackViewUrl, чтобы сделать его глубоким связыванием с приложением Apple Music:
NSString *appleMusicDeepLinking = [NSString stringWithFormat:@"%@&mt=1&app=music", response[0][@"trackViewUrl"]];