Ionic - некоторые функции не работают при компиляции на IOS - PullRequest
0 голосов
/ 04 января 2019

Контекст:

Здравствуйте, я работаю над приложением 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);
        });

  }

Если кто-то знает, как решить мою проблему, я был бы очень благодарен!Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...