У меня есть приложение, которое отправляет геолокации каждые 5 секунд, и если новое местоположение не найдено, последнее найденное местоположение каждую минуту. Таким образом, в принципе, приложение не может прекратить отправку геолокации в файл PHP.iOS перестает отправлять http-запросы случайно [Titanium]
Тем не менее он делает. Совершенно случайно. Приложение просто прекращает отправку на сервер без ошибок (потому что у меня есть предупреждение в моем onerror) и просто начинает повторную отправку снова, когда я открываю приложение, чтобы узнать, что происходит.
Как хорошо работает на Android, кстати!
У меня есть некоторые вещи в моем info.plist, чтобы сохранить его живым (И это держать его в живых, но просто перестает жить наобум я думаю):
<key>UIBackgroundModes</key>
<array>
<string>external-accessory</string>
<string>location</string>
</array>
И мой HttpRequest выглядит следующим образом:
function sendCoordinates() {
//Reset the visual text(errors/succesmessage etc)
if (Titanium.Network.online) {
//Concat the GPSholder array into the toSend and than empty the GPSholder.
//To toSend accumulates GPSholder arrays in case it can't be sent for some reason but avoids getting duplicates in the GPSholder
//the toSend is emptied out after a succesful save.
toSend = toSend.concat(getGPSholder());
GPSholder = [];
if (toSend.length > 0) {
GPSSaved.text = '';
minuteInterval = 0;
var xhr=Titanium.Network.createHTTPClient({enableKeepAlive: false});
xhr.open("POST","http://xxx.nl/website/services/esrm_tracker/push_tt_positions.php");
xhr.onload = function(){
if(this.status == '200'){
if(this.readyState == 4){
var result = JSON.parse(this.responseText);
switch(result.result) {
case 1:
secondsLastSent = 0;
counterBlock.text = "De laatste locatie is " + secondsLastSent + " seconden geleden verstuurd";
counterBlock.show();
toSend = [];
break;
case -1:
GPSSaved.text = 'Authorisatie code niet geldig. Er worden geen locaties meer verstuurd.';
GPSstop();
break;
case -2:
GPSSaved.text = 'Locaties niet geldig';
break;
case -3:
GPSSaved.text = 'Authorisatie code niet gevonden. Er worden geen locaties meer verstuurd.';
GPSstop();
break;
case -10:
GPSstop();
break;
default:
GPSSaved.text = 'Onbekende fout. Er worden geen locaties meer verstuurd.';
GPSstop();
break;
}
}
}
}
xhr.onerror = function(e){
GPSSaved.text = e.status + ' <- error';
alert(e);
};
xhr.timeout = 10000;
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
var str = JSON.stringify(toSend);
var params = {
auth_key : auth_key,
locations : str
};
xhr.send(params);
}
} else {
GPSSaved.text = 'Geen internet. Het versturen van locaties wordt hervat als de verbinding is hervat.';
}
}
как фриз, я рад поддержать в вопросе, который включает в себя «Elfstedentocht». Свяжитесь со мной, если у вас возникнут дополнительные проблемы. –
Спасибо за предложение. Если эта проблема может быть решена, у меня может быть что-то еще на рукаве, чтобы пойти с этим ха-ха. Тем не менее я удалил ссылку на данный момент haha – CaptainCarl