Мне нужно собрать приложение с Android версии 7.1.1. что я делаю сейчас, пожалуйста, совет ....

я есть приложение Ionic 3. Я недавно добавил платформу iOS.

Когда я запускаю его на iOS (эмулятор и устройство), все запросы сервера, имеющие заголовки, завершаются с ошибкой«Ответ со статусом: 0 для URL: ноль», На Android эти запросы работают нормально.

Если я сделаю запросыбез заголовков я получаю ожидаемый ответ от сервера.

Я знаю, что проблема сWKWebView а такжеCORS, На сервере CORS настроен правильно. Я делаю запросы с@ Угловое / HTTP модуль.

Давайте посмотрим код.

Это мой провайдер для выполнения запросов к серверу:

import { Injectable } from '@angular/core';
import { Content } from 'ionic-angular';
import { Http, Headers, RequestOptions, URLSearchParams } from '@angular/http';
import { HTTP } from '@ionic-native/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import { Globalization } from '@ionic-native/globalization';

import { Globals } from '../providers/globals';

...

/// Here we have one example Request (it's inside a method)

/// Here I create the URL for the request
let url = this.server_url + this.server_functions.doSearch;

/// Now I create the Headers for the Request
let headers = new Headers();
/// As You can see, I have tried to pass diferent headers to server
    // headers.append("Access-Control-Allow-Origin","*");
    // headers.append("Origin", "https://localhost:8080");
    // headers.append("Access-Control-Allow-Methods","POST, GET, OPTIONS, PUT");
    // headers.append("Accept","application/json");
    // headers.append("Content-Type","application/json; charset=utf-8");

/// If the user is logged in I have to send this headers to server
if ( !this.globals.guestMode ) {
    headers.append("TokenAuth", this.globals.getLogRegData()["TokenAuth"]);
    headers.append("IdAuth", this.globals.getLogRegData()["IdAuth"]);
}

/// And here we start the GET Request
this.http.get( url, { headers: headers } ).map(res => res.json()).subscribe(
    data => {
        // console.log( JSON.stringify(data) );
        callback( data );
    },
    err => {
        console.log("ELOL: "+err);
    }
);

Другим способом я решил попробовать модуль @ ionic-native / http (как вы можете видеть в импорте), чтобы избежать проблем с WKWebView и CORS, но когда я выполняю запрос с ним, я получаю эту ошибку:

WARN: Native: tried calling HTTP.get, but the HTTP plugin is not installed.
WARN: Install the HTTP plugin: 'ionic cordova plugin add cordova-plugin-advanced-http'

Вот как я делаю запрос с родным плагином:

this.httpnative.get(url, {}, {})
    .then(data => {

        console.log(data.status);
        console.log(data.data); // data received by server
        console.log(data.headers);

    })
    .catch(error => {

        console.log(error.status);
        console.log(error.error); // error message as string
        console.log(error.headers);

    });

Это фрагмент моего app.module.ts:

import { HttpModule } from '@angular/http';
import { HTTP } from '@ionic-native/http';
...
@NgModule({
...
 imports: [
...
    HttpModule,
    HTTP,
...

  ],
})

Я надеюсь, что кто-то может пролить на меня немного света, потому что я так потерян на путях Ионического.

Благодарю вас.

Ответы на вопрос(2)

Ваш ответ на вопрос