Проблема, с которой мы сталкиваемся в настоящее время, связана с загрузкой и перезагрузкой содержимого сцен. Приложение, так как оно работает сегодня, плохо реагирует на сетевое отсоединение и повторное подключение.Samsung TV APP - обновление содержимого сцен при повторном подключении сети
Например, есть состояния, в которых ajax-состояние равно 200/штраф. Но данные, входящие в NULL ->, приводят к пустым сценам.
Вот отрывок из моего контроллера, как это выглядит сейчас:
Controller.assignEvents = function() {
var player = document.getElementById('pluginObjectPlayer');
player.OnConnectionFailed = 'Controller.ConnectionFailed';
player.OnNetworkDisconnected = 'Controller.NetworkDisconnected';
player.OnStreamNotFound = 'Controller.StreamNotFound';
$$(document).ajaxError(function(e, xhr, settings, exception) {
alert('error (' + xhr.status + ') ' + 'in: ' + settings.url + ' | error: ' + exception);
if(xhr.status === 0 || xhr.status === 408 || xhr.status === 504) Controller.NetworkDisconnected();
});
$$(document).ajaxSuccess(function(event, xhr, settings){
alert('ajaxSuccess('+xhr.status+'): ' + settings.url);
if(settings.url.indexOf('http:') === 0) {
if(Controller.no_network) {
Controller.no_network = false;
Controller.hideNotification();
}
}
});
}
Controller.ConnectionFailed = function() {
alert("Stream connection failed");
Controller.no_network = true;
Controller.showNotification('Nema mreze');
}
Controller.NetworkDisconnected = function() {
alert('NetworkDisconnected');
Controller.no_network = true;
Controller.showNotification('Nema mreze');
if(typeof sf.scene.get('Youtube') != 'undefined' && sf.scene.get('Youtube').isVideoPlaying){
sf.scene.hide('Overlay');
} else {
sf.scene.get('Content').streamStop(false);
}
sf.scene.get('Content').streamStop(false);
}
Controller.NetworkResumed = function() {
alert('NetworkResumed');
Controller.no_network = false;
Controller.hideNotification();
if(Controller.starting){
Controller.startup();
} else {
alert("Start timeout on resume");
$('#buffering').show();
setTimeout(function(){
sf.scene.get('Content').streamResume(false);
$('#buffering').hide();
}, 5000);
}
}
Controller.isConnectionAvailable = function() {
if(sf.core.getEnvValue("modelid") == 'SDK') return Controller.SDK_NETWORK;
var network = document.getElementById('pluginObjectNetwork');
var interfaceType = network.GetActiveType();
if(interfaceType === -1) return false;
var physicalConn = network.CheckPhysicalConnection(interfaceType);
if(physicalConn !== 1) return false;
var httpStatus = network.CheckHTTP(interfaceType);
if(physicalConn !== 1) return false;
return true;
}
Controller.pollNetwork = function() {
alert('polling network');
var prevStatus = Controller.no_network;
Controller.no_network = !Controller.isConnectionAvailable();
if(! Controller.no_network && prevStatus) {
Controller.NetworkResumed();
}
else if(Controller.no_network && ! prevStatus) {
Controller.NetworkDisconnected();
}
setTimeout(Controller.pollNetwork, 2000);
}
Кто-нибудь есть идея, как это исправить? Благодаря !