为了在Apple Music应用程序中打开曲目,您应该使用深层链接:
https://affiliate.itunes.apple.com/resources/documentation/linking-to-the-itunes-music-store/
首先,您需要通过SKCloudServiceController API请求授权以检查您的功能(例如,如果您的设备允许播放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)。您需要使用您的国家/地区代码进行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"]]