This library adds @ionic-native/http (when available) as a connection backend to Angular's Http and HttpClient
Now that Apple promotes/requires the use of WKWebView instead of the deprecated UIWebView, Ionic has switched newly created apps over via their cordova-plugin-ionic-webview
(and Cordova offers it via their cordova-plugin-wkwebview-engine). That causes requests that used to work just fine to fail with CORS errors.
The real solution of course is to fix the CORS issues server side - but this may not be possible with e.g. 3rd party APIs.
Even though there is a way to solve CORS issues without changing server's response header by using @ionic-native/http, this only works on device and doesn't provide all the power of Angular's Http and HttpClient.
- The library provides a
HttpBackendinterface for Angular'sHttpClient - This
HttpBackendinterface tries to use@ionic-native/httpwhenever it is possible (= on device with installed plugin) - If
HttpBackendfinds it impossible to use@ionic-native/http, it falls back to standard Angular code (HttpXhrBackend, which usesXmlHttpRequest)
This strategy allows developers to use Angular's HttpClient transparently in both environments: Browser and Device.
npm install --save ionic-native-http-connection-backendThen follow instructions at https://ionicframework.com/docs/native/http/#installation
For Ionic 4 support consider
npm install --save ionic-native-http-connection-backend@nextAdd NativeHttpModule, NativeHttpBackend and NativeHttpFallback into the application's module
import { NgModule } from '@angular/core';
import { HttpBackend, HttpXhrBackend } from '@angular/common/http';
import { NativeHttpModule, NativeHttpBackend, NativeHttpFallback } from 'ionic-native-http-connection-backend';
import { Platform } from 'ionic-angular';
@NgModule({
declarations: [],
imports: [
NativeHttpModule
],
bootstrap: [],
entryComponents: [],
providers: [
{provide: HttpBackend, useClass: NativeHttpFallback, deps: [Platform, NativeHttpBackend, HttpXhrBackend]},
],
})
export class AppModule {
}Contributing guidelines could be found in CONTRIBUTING.md