7

我很确定一定有一种方法可以从我自己的应用程序中启动 spotify iphone 应用程序。我看到 SMP 应用程序(分享我的播放列表)在将播放列表推送到 Spotify 应用程序时做了非常相似的事情。

我想应该是通过使用类似的东西:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"spotify://search:muse"]];

如您所见,我希望能够对特定关键字进行 spotify 搜索。问题是我真的不知道 spotify url 方案,如果有这样的东西可用。

我一直在网上搜索,在 spotify 开发者网站等,但没有出现...

4

2 回答 2

12

我在应用程序中遇到了类似的需求。我的解决方案是创建一个点击 Spotify API 以返回搜索的 XML 或 JSON 的客户端。例如,如果您想要 Muse,您可以使用以下 URL 访问 API:

http://ws.spotify.com/search/1/artist?q=muse

从 XML 或 JSON,您将能够在他们的 URL 方案中提取指向特定艺术家的链接:

spotify:artist:12Chz98pHFMPJEknJQMWvI

剪掉 spotify:artist: 部分并将其附加到 Spotify 艺术家链接上:

http://open.spotify.com/artist/12Chz98pHFMPJEknJQMWvI

然后,使用 Spotify URL 方案和 UIApplication,您可以将 Spotify 应用程序打开到该特定艺术家的页面:

[[UIApplication sharedApplication] openURL:
   [NSURL URLWithString:
       @"spotify://http://open.spotify.com/artist/12Chz98pHFMPJEknJQMWvI"]];

请注意,使用 URL 方案访问另一个应用程序的功能通常是无证的,并且可能是一项脆弱的工作。如果 Spotify 将来决定对此进行任何更改,它将在没有警告的情况下破坏此功能。

于 2012-06-15T20:16:16.167 回答
2

我所做的快速修复是删除添加到原始 uri 中的 urlscheme。所以你会直接调用uri。

这是 'spotify:artist:4gzpq5DPGxSnKTe4SA8HAU' 或 'spotify:track:1dNIEtp7AY3oDAKCGg2XkH'

UIApplication.shared.openURL("spotify:artist:4gzpq5DPGxSnKTe4SA8HAU") 或 UIApplication.shared.openURL("spotify:track:1dNIEtp7AY3oDAKCGg2XkH")

此修复适用于从 v6 及更高版本调用旧 urlscheme 时的崩溃。

于 2017-03-07T12:25:22.387 回答