iOS使用app中的给定关键字打开iTunes音乐搜索

时间:2014-09-24 22:13:04

标签: ios objective-c itunes

我已经构建了一个显示带有背景音乐的视频的应用程序,用户可以添加要在视频旁边显示的歌曲的元数据(artis,标题,专辑,流派)。

现在我想让观众在iTunes中购买这首歌。

我查询iTunes搜索(https://itunes.apple.com/search)以获得打开特定歌曲的链接,这在95%的情况下效果很好。我通过比较返回的艺术家和歌曲来验证结果,以确保我没有将用户指向“误报”歌曲。

如果我找不到完美匹配,我想打开iTunes并在歌曲字段中预先填写标题和艺术家。而且我很难让它发挥作用。

到目前为止,我的最大努力是打开它://search.itunes.apple.com/WebObjects/MZSearch.woa/wa/search并添加?term =我的+关键字& media = music& entity = song打开显示搜索视图的iTunes已填写“我的关键字”,但不幸的是搜索字词混乱并显示为(“我的关键字”),包括引号和括号。

这是我正在使用的代码:

NSString* baseURLString2 = @"itms://search.itunes.apple.com/WebObjects/MZSearch.woa/wa/search";
NSString* searchUrlString2 = [NSString stringWithFormat:@"%@?term=%@&media=music&entity=song", baseURLString2, searchTerm];

searchUrlString2 = [searchUrlString2 stringByReplacingOccurrencesOfString:@" " withString:@"+"];
searchUrlString2 = [searchUrlString2 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL* searchUrl2 = [NSURL URLWithString:searchUrlString2];

dispatch_async(dispatch_get_main_queue(), ^{
    [[UIApplication sharedApplication] openURL:searchUrl2];
});

这是searchUrlString2的一个例子:

itms://search.itunes.apple.com/WebObjects/MZSearch.woa/wa/search?term=J+Cole+Trouble&media=music&entity=song

当我使用https而不是itms时,它在我的MacBook上的浏览器中工作正常,但在iOS 8的iTunes中仍然相同。

有关如何解决此问题的任何想法? 或者你能指点我一个很好的文件吗?

提前致谢 斯文

1 个答案:

答案 0 :(得分:2)

发现它,使用itms://itunes.apple.com/WebObjects/MZStore.woa/wa/search as baseURL为我做了诀窍。

所以完整的URL是:

itms://itunes.apple.com/WebObjects/MZStore.woa/wa/search?term=MySearch&media=music&entity=song