我已经为Spotify使用this线程,基本上使用URL方案.在this Reddit线程我找到一个iOS URL Scheme的列表,但我找不到任何关于Apple Music – this请求在同一个线程上确认它仍然不可用.
没有运气与Apple Music API.
问题:有人知道如何与Apple Music完成同样的行为吗? Btw,不需要使用URL方案.
这个目标是启动Apple Music,并将歌曲播放到Apple Music应用程序中,而不是在我的应用程序上.我已经在我的应用程序上播放了Apple Music的歌曲.
我在API文档中缺少什么?任何想法将不胜感激.
解决方法
https://affiliate.itunes.apple.com/resources/documentation/linking-to-the-itunes-music-store/
首先,您需要通过SKCloudServiceController API请求授权,以检查您的功能(例如,如果您的设备允许播放Apple音乐曲目).
[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).您需要您的国家代码到Apple Music API请求.
- (NSString *)countryCodeWithIdentifier:(NSString *)identifier { NSURL *plistURL = [[NSBundle mainBundle] URLForResource:@"CountryCodes" withExtension:@"plist"]; NSDictionary *countryCodeDictionary = [NSDictionary dictionaryWithContentsOfURL:plistURL]; return countryCodeDictionary[identifier]; }
一旦你有相应的国家代码,你可以在Apple Music的API中搜索一个曲目.使用以下参数发出请求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"]];