【发布时间】:2012-04-08 08:22:17
【问题描述】:
有什么方法可以检测 Spotify 是否处于离线模式?我目前正在开发一个明显依赖于工作互联网连接的应用程序。我希望能够检测是否有互联网连接,如果没有,则显示错误消息。
我找到了一些似乎不起作用的 javascript 通用解决方案,例如:
var online = navigator.onLine;
【问题讨论】:
标签: javascript offline spotify
有什么方法可以检测 Spotify 是否处于离线模式?我目前正在开发一个明显依赖于工作互联网连接的应用程序。我希望能够检测是否有互联网连接,如果没有,则显示错误消息。
我找到了一些似乎不起作用的 javascript 通用解决方案,例如:
var online = navigator.onLine;
【问题讨论】:
标签: javascript offline spotify
您可以通过访问会话对象中的状态来检测客户端是否离线。
https://developer.spotify.com/technologies/apps/docs/a5a59ca068.html
您需要做的是使用观察者监听状态变化并寻找离线状态。
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);
});
【讨论】:
这是您在较新的 (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 了解更多信息。
【讨论】:
http://developer.spotify.com/en/libspotify/docs/group__session.html
检查
sp_connectionstate
对于枚举值:
SP_CONNECTION_STATE_OFFLINE
应该得到你想要的。
【讨论】:
对于 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
【讨论】: