使用javascript:spotify play button
查看完全看来的播放按钮请注意,按下播放将导致Spotify开始播放音乐。好吧,我认为这是通过一些特定于应用程序的协议链接(如spotify:// play)完成的,尽管我可能错了。但疯狂的部分是,如果你停止在Spotify中播放音乐,该按钮将在浏览器中更新,以显示音乐已停止播放!这有什么作用?
您可以查看其source here。
答案 0 :(得分:4)
桌面在您的计算机上*.spotilocal.com
运行服务器,然后在网络上,嵌入播放器(example)将选择子域名(例如:fdxubmxkqp.spotilocal.com
)。
然后它向本地服务器的API发出请求,例如:
https://fdxubmxkqp.spotilocal.com:4370/service/version.json
https://fdxubmxkqp.spotilocal.com:4370/simplecsrf/token.json
它只返回一些JSON:
{
"version": 9,
"client_version": "1.0.10.107.gd0dfca3a"
}
有关详细信息,请参阅this screenshot,或者您可以转到news.spotify.com并使用带有spotilocal
的网络检查器作为过滤器来获取相同的信息。
答案 1 :(得分:3)
(注意,这不是他们实际上如何做到的,但对于那些希望实现类似功能的人来说,它仍然是一个有效的答案)
它注册了一个自定义协议内容处理程序。您可以通过浏览器为任何"web-*"
协议注册协议,以使您的网站处理该协议,但您也可以在安装时注册协议。 (这就是Spotify的工作方式)。在这里看到这篇文章:
Registering an Application to a URL Protocol
您的浏览器可以配置为识别某些处理程序。
我不确定每个浏览器是如何做到的,我认为它适用于Internet Explorer的注册表级别,如上面链接的文章。
无论如何,在Chrome和Firefox中,有一个用于注册协议的window.navigator.registerProtocolHandler
功能。
见这里:https://developer.mozilla.org/en-US/docs/DOM/navigator.registerProtocolHandler
另外,请查看brief article。 (尽管信息非常稀少)
Chrome 13最终包含navigator.registerProtocolHandler
。此API允许Web应用程序将自己注册为特定协议的可能处理程序。例如,用户可以选择您的应用程序来处理“mailto”链接。
注册协议方案,如:
navigator.registerProtocolHandler(
'web+mystuff', 'http://example.com/rph?q=%s', 'My App');
如果我在答案中没有明确说明,我提供了有关Web应用程序如何注册自己的协议的信息,以及桌面应用程序如何注册新协议的信息。 (任何Web应用程序都需要以web-*
为前缀以避免安全问题)
答案 2 :(得分:3)
spotify播放按钮长时间轮询(通过HTTPS)在localhost上运行的spotify应用程序以更新状态。