Контекст:
Здравствуйте, я работаю над приложением Ionic (созданным в Typescript).В этом приложении я управляю камерой Wi-Fi через HTTP-запрос к IP (точнее, http://192.72.1.1/myCommand
).
Основные действия, которые я выполняю с камерой:
- Начало записи
- Остановить запись
- Получить список видео
- Загрузить видео
Когда я использую Ionic DevApp:
С Ionic DevApp все работает отлично, я могу без проблем выполнять все действия с сетью.
Когда я компилирую приложение на IOS:
Я компилируюс помощью команды ionic cordova build ios --prod
, затем я архивирую с помощью Xcode и отправляю его в AppStore для тестирования с помощью Test Flight.
Я не получил ошибок при компиляции / архивировании приложения.Но когда я пробую его на своем iPhone, я могу начать / остановить запись, но не могу загрузить видео.
Проблема:
Некоторые команды не работают,но я не знаю, получает ли он список или скачивает видео, у меня нет логов.Я не понимаю, почему некоторые команды работают, а другие нет.
IOS блокирует запросы на загрузку?Как решить мою проблему?
Примечания:
- Я уже попробовал все основные вещи, такие как удаление платформы IOS, перекомпиляция, удаление, ...
- Я пробовал разные Ionic HTTP плагины, та же проблема со всеми из них.
Некоторый код:
Запуск / остановка камеры: (этоэто та же команда для запуска / остановки).
startCamera(){
var url = "http://192.72.1.1/changeRecordStatus";
var result = this.http.get(url);
result.subscribe(data => {
console.log("Works");
},
err => {
console.log("Error" + err);
}
);
}
Получение названия последнего видео:
getLastVideo(){
var url = "http://192.72.1.1/listVideos";
this.http.get(url, {}, {})
.then(data => {
var xml = data.data
var xmlDOM = new DOMParser().parseFromString(xml, 'text/xml');
var temp = this.xmlToJson(xmlDOM); // function that convert XML to JSON
var resultArray = Object.keys(temp).map(function(i){
let ite = temp[i];
return ite;
});
resultArray = resultArray[0]['file'].reverse();
this.lastVideo = resultArray[0]['name']; // lastVideo is a global variable
},
(error) =>{
console.log("Error while getting the name of the last video" + error);
});
}
Загрузка файла с камеры:
downloadFileFromCamera() {
this.getLastVideo();
var basename_file = this.lastVideo;
var url = "http://192.72.1.1" + basename_file;
this.fileTransfer.download(encodeURI(url), this.file.dataDirectory + '/videos/' + basename_file, true).then((entry) => {
this.video[this.counterVideos] = entry; // video is a global array
this.counterVideos +=1;
}, (error) => {
console.log("Error while downloading the last video" + error);
});
}
Если кто-то знает, как решить мою проблему, я был бы очень благодарен!Заранее спасибо.