Spotify Apps API:检测离线模式

时间:2012-03-23 18:50:11

标签: javascript offline spotify

有没有办法检测Spotify是否处于离线模式?我目前正在开发一个应用程序,显然取决于一个有效的互联网连接。我希望能够检测到是否存在与互联网的连接,如果没有,则显示错误消息。

我找到了一些似乎不起作用的javascript通用解决方案,例如:

var online = navigator.onLine;

4 个答案:

答案 0 :(得分:5)

您可以通过访问会话对象中的状态来检测客户端是否处于脱机状态。

https://developer.spotify.com/technologies/apps/docs/a5a59ca068.html

您需要做的是使用观察者监听状态更改并查找OFFLINE状态。

DISCONNECTED: 2
DUMMY_USER: 4
LOGGED_IN: 1
LOGGED_OUT: 0
OFFLINE: 3

var sp = getSpotifyApi(1);
var models = sp.require('sp://import/scripts/api/models');

models.session.observe(models.EVENT.STATECHANGED, function() {
    console.log(models.session.state);
});

答案 1 :(得分:0)

http://developer.spotify.com/en/libspotify/docs/group__session.html

检查

sp_connectionstate 

表示枚举值:

SP_CONNECTION_STATE_OFFLINE

应该得到你想要的东西。

答案 2 :(得分:0)

对于Apps API V1,您可以采用......

的方式
require(['$api/models'], function(models) {

  // add a listener to pick up any changes in on / offline state
  models.session.addEventListener('change', changeOffline);

  function changeOffline(){
    var online = models.session.online; // returns true / false
    if(!online){
      // show offline message etc...
    } else {
      // hide offline message etc...
    }
  }
});

https://developer.spotify.com/docs/apps/api/1.0/models-session.html

答案 3 :(得分:0)

这是您在较新的(2013+)1.0 API中执行此操作的方法:

 models.session.addEventListener('change:online',function({
    console.log('online =',models.session.online);
});

有关详细信息,请参阅https://developer.spotify.com/docs/apps/api/1.0/api-models-session.html