Ionic
Ionic Framework is an open source mobile UI toolkit for building high quality, cross-platform native and web app experiences.
Run chrome
"/C/Program Files (x86)/Google/Chrome/Application/chrome.exe" --disable-web-security --disable-gpu --user-data-dir="c:\TempChrome" --disable-features=SameSiteByDefaultCookies,SameSiteDefaultChecksMethodRigorously
Example app
- Requires Android SDK, node 12.16.2 and npm 6.14.5
1 cd ~
2 mkdir IonicTest
3 npm install @ionic/cli
4 node_modules/.bin/ionic start IonicTest
5 #framework angular
6 #starter template tabs
7 #integrate capacitor N
8 #create free ionic account N
9 cd IonicTest
10 npm i
11 npm install @ionic/cli
12 npm install cordova
13 npm install cordova-res
14 node_modules/.bin/ionic cordova plugin add cordova-plugin-advanced-http
15 npm install @ionic-native/http
16 node_modules/.bin/ionic cordova platform add android
17 node_modules/.bin/ionic cordova build android
18 scp ./platforms/android/app/build/outputs/apk/debug/app-debug.apk userx@example.net:/home/userx/www/ionic-test.apk
19 node_modules/.bin/ionic cordova platform add browser
20 node_modules/.bin/ionic cordova build browser
21 node_modules/.bin/ionic serve --cordova --platform=browser
22 # http://localhost:8100
23 # no CORS
24 google-chrome --disable-web-security --disable-gpu --user-data-dir="/tmp"
app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { HTTP } from '@ionic-native/http/ngx';
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
providers: [
HTTP,
StatusBar,
SplashScreen,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [AppComponent]
})
export class AppModule {}
tab1.page.ts
import { Component } from '@angular/core';
import { HTTP } from '@ionic-native/http/ngx';
@Component({
selector: 'app-tab1',
templateUrl: 'tab1.page.html',
styleUrls: ['tab1.page.scss']
})
export class Tab1Page {
public res;
constructor(private http: HTTP) {}
public ionViewDidEnter(){
console.log("Stuff");
this.http.get("https://labs.bitarus.allowed.org/xapps/rest/version/", {}, {})
.then(data => {
console.log(data.status);
console.log(data.data); // data received by server
this.res=data.data;
console.log(data.headers);
})
.catch(error => {
console.log(error.status);
console.log(error.error); // error message as string
console.log(error.headers);
});
}
}
tab1.page.html
<ion-header [translucent]="true">
<ion-toolbar>
<ion-title>
Tab 111 {{res}}
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content [fullscreen]="true">
<ion-header collapse="condense">
<ion-toolbar>
<ion-title size="large">Tab 111</ion-title>
</ion-toolbar>
</ion-header>
<app-explore-container name="Tab 111 page {{res}}"></app-explore-container>
</ion-content>
tab2.page.html
<ion-header [translucent]="true">
<ion-toolbar>
<ion-title>
Sum
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content [fullscreen]="true">
<ion-header collapse="condense">
<ion-toolbar>
<ion-title size="large">Sum</ion-title>
</ion-toolbar>
</ion-header>
<ion-item>
<ion-label>Value 1</ion-label>
<ion-input [(ngModel)]="in1"></ion-input>
</ion-item>
<ion-item>
<ion-label>Value 2</ion-label>
<ion-input [(ngModel)]="in2"></ion-input>
</ion-item>
<ion-button color="primary" (click)="sumValuesButtonClicked()">Sum values</ion-button>
</ion-content>
tab2.page.ts
import { Component } from '@angular/core';
import { AlertController } from '@ionic/angular';
@Component({
selector: 'app-tab2',
templateUrl: 'tab2.page.html',
styleUrls: ['tab2.page.scss']
})
export class Tab2Page {
in1:string;
in2:string;
constructor(public alertController: AlertController) {}
sumValuesButtonClicked(){
let res:Number;
res = parseInt(this.in1) + parseInt(this.in2);
this.presentResult(res).then(()=>{
console.log("Done");
});
}
async presentResult(res:Number) {
const alert = await this.alertController.create({
header: 'Sum',
subHeader: 'Result',
message: res.toString(),
buttons: ['OK'],
});
await alert.present();
let result = await alert.onDidDismiss();
console.log(result);
}
}