如何Spotify的网络浏览器按钮,Spotify应用程式互动?(How does the Spot

2019-07-03 10:12发布

看看这个播放按钮,完全写看来,使用javascript: Spotify的播放按钮 。

请注意,压着打会导致Spotify的开始播放音乐。 好了,我觉得威盛一些特定的应用程序协议链接来实现(如Spotify://播放),虽然我可能是错的。 但疯狂的是,如果你停止播放音乐的Spotify,该按钮就会在浏览器更新以显示音乐停止播放! 这是如何运作的?

你可以看一下它的源头在这里 。

Answer 1:

桌面运行在服务器*.spotilocal.com您的计算机上,然后在网络上,嵌入的播放器( 例如 )将选择的一个子域名(例如: 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"
}

见这个截图更多信息,或者您也可以通过获得去同一个信息news.spotify.com和使用网络审查员spotilocal作为过滤器。



Answer 2:

(请注意,这不是他们实际上如何做到这一点,但它仍然是找人来实现类似的东西一个有效的答案)

使用自定义协议内容处理器

它注册了一个自定义协议内容处理程序。 您可以通过浏览器注册协议,任何"web-*"的协议,为了让您的网站处理该协议,但在安装时注册一个协议,你还可以有应用。 (这是Spotify的是如何工作的)。 在这里看到这篇文章:

注册到URL协议的应用

你的浏览器可以被配置为识别特定的处理程序。

我不知道在每一个浏览器是怎么做的,我相信它的工作原理上的Internet Explorer注册表水平按照上面链接的文章。

无论如何,在Chrome和Firefox有一个window.navigator.registerProtocolHandler注册您的协议功能。

在这里看到: https://developer.mozilla.org/en-US/docs/DOM/navigator.registerProtocolHandler

此外,检查出这个非常简短的文章 。 (这是对信息非常稀疏虽然)


铬13最后包括navigator.registerProtocolHandler 。 该API允许网络应用程序将自身注册为特定协议可能处理程序。 例如,用户可以选择你的应用程序来处理“电子邮件地址”的链接。

注册一个协议方案,如:

navigator.registerProtocolHandler(
    'web+mystuff', 'http://example.com/rph?q=%s', 'My App');

如果我没有在我回答这个问题清楚了,我已经提供了Web应用程序如何可以注册自己的协议信息,而且,如何桌面应用程序可以注册一个新的协议。 (任何Web应用程序,需要使用前缀web-*避免安全问题)



Answer 3:

Spotify的播放按钮长轮询(通过HTTPS)运行于本Spotify的应用程序更新的状态。



文章来源: How does the Spotify web browser button interact with the Spotify app?