Debug en celular
1. Habilitar debug USB en el telefono
2. ionic cordova run android --device
3. Para ver el output de consola que produce el celular:
Debug en chrome
Abrir chrome:
Buscar la que dice Ionic App, y click en Inspect
instalar NativeScript y ejecutar tsn doctor
esto instala todo lo necesario (sdk de android, gradle, etc)
1. Iniciar proyecto
ionic start proyecto1 blank --type=angular
cd proyecto1
npm install --save @angular/material @angular/cdk
ng add @angular/material
npm install --save-dev @angular/cli@latest
npm install
2. Previsualizar
ionic serve -l --livereload //-l es para iniciar en modo lab, previsualiza en ios y android
*** Si livereload no anda:
npm uninstall -g ionic
npm install -g ionic@latest
npm i -g ionic
***
3. Todos los componentes Material
https://expressraider.blogspot.com/2019/02/importacion-de-todos-los-modulos-de.html
(referencia: https://gist.github.com/pimatco/d5b1891feb90b60ca4681011b6513873)
4. Referencia API Material
REFERENCIA
https://material.angular.io/components/categories
QUICK GUIDE
https://www.tutorialspoint.com/angular_material7/angular_material7_quick_guide.htm
ALLIGATOR
https://alligator.io/angular/material-design-angular-reference/
5. Firestore
npm install angularfire2 firebase
*** si da error TypeError:
npm install rxjs@6 rxjs-compat@6 --save
***
mas detalles en: http://expressraider.blogspot.com/2018/08/firebase-ionic-angular.html?m=0
6. Navegación
app-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', loadChildren: './home/home.module#HomePageModule' },
{ path: 'resultado', loadChildren: './resultado/resultado.module#ResultadoPageModule' }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
import { NavController } from '@ionic/angular';
constructor(public navCtrl: NavController) {}
---------------------------------------------------------------------------------------------------------------------
app-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', loadChildren: './home/home.module#HomePageModule' },
{ path: 'resultado', loadChildren: './resultado/resultado.module#ResultadoPageModule' }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
home.page.ts
import { NavController } from '@ionic/angular';
constructor(public navCtrl: NavController) {}
this.navCtrl.navigateForward('resultado');
---------------------------------------------------------------------------------------------------------------------
ionic start app1 --list
Instalar Gradle
1. Bajar la ultima version de gradle de esta ubicacion: https://gradle.org/install/
y descomprimirla en c:\gradle
*** bajar la version full ***
2. Agregar al path: c:\gradle\bin
3. Ejecutar gradle -v para verificar que haya quedado ok.
1. Bajar la ultima version de gradle de esta ubicacion: https://gradle.org/install/
y descomprimirla en c:\gradle
*** bajar la version full ***
2. Agregar al path: c:\gradle\bin
3. Ejecutar gradle -v para verificar que haya quedado ok.
Configuración para poder compilar para Android:
ESTO INSTALA EL SDK MANAGER DE FORMA CORRECTA
1. Instalar Java JDK (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
Android Platform SDK for your targeted version of AndroidAndroid Platform-ToolsAndroid SDK build-tools version 19.1.0 or higherAndroid Support Repository (found under “Extras”)
ANDROID_HOME : The path to where the Android SDK is installed.
Para agregar las variables desde linea de comando:
set ANDROID_HOME=C:\<installation location>\sdk
6. Verificar que se pueda ejecutar
(Esto indica que esta todo bien instalado)
7. En la carpeta del proyecto ejecutar
ionic cordova platform add windows
Compilación en Android
Luego que esta todo lo del paso anterior configurado:
ionic cordova build android Generar el apk para probar en celular
*** hay que instalar android studio para que funcione la compilacion para android ***
home.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { RouterModule } from '@angular/router';
import { HomePage } from './home.page';
import {MatButtonModule, MatIconModule, MatSelect} from '@angular/material';
import {MatFormFieldModule} from '@angular/material/form-field';
import {MatSelectModule} from '@angular/material'
import {MatInputModule} from '@angular/material';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild([
{
path: '',
component: HomePage
}
]),
MatButtonModule,
MatIconModule,
MatFormFieldModule,
MatSelectModule,
MatInputModule
],
declarations: [HomePage]
})
export class HomePageModule {}
home.page.html
<ion-header>
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
</ion-buttons>
<ion-title>
Datos del cliente
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="example-container">
<mat-form-field>
<input matInput placeholder="Nombre">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Dirección">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Teléfono">
</mat-form-field>
<mat-form-field>
<textarea matInput placeholder="Textarea"></textarea>
</mat-form-field>
<mat-form-field>
<mat-select placeholder="Color">
<mat-option value="option">Rojo</mat-option>
<mat-option value="option">Negro</mat-option>
<mat-option value="option">Azul</mat-option>
</mat-select>
</mat-form-field>
</div>
</ion-content>
home.page.scss
.example-container {
display: flex;
flex-direction: column;
}
.example-container > * {
width: 100%;
}
Tabs
<ion-tabs>
<ion-tab [root]="tab1Root" tabTitle="Home" tabIcon="home"></ion-tab>
<ion-tab [root]="tab2Root" tabTitle="About" tabIcon="information-circle"></ion-tab>
<ion-tab [root]="tab3Root" tabTitle="Contactos" tabIcon="contacts"></ion-tab>
</ion-tabs>
import { Component } from '@angular/core';
import { AboutPage } from '../about/about';
import { ContactPage } from '../contact/contact';
import { HomePage } from '../home/home';
@Component({
templateUrl: 'tabs.html'
})
export class TabsPage {
tab1Root = HomePage;
tab2Root = AboutPage;
tab3Root = ContactPage;
constructor() {
}
}
Input
<ion-content padding>
<ion-item>
<ion-input [(ngModel)]="filtro" type="text" placeholder="Numero"></ion-input>
<button ion-button item-end (click)="buscar();">Buscar</button>
</ion-item>
</ion-content>
<ion-content padding>
<ion-item>
<ion-input [(ngModel)]="filtro" type="text" placeholder="Numero"></ion-input>
<button ion-button item-end (click)="buscar();">Buscar</button>
</ion-item>
</ion-content>
Tabla
<ion-content padding>
<ion-grid>
<ion-row *ngFor="let d of lista">
<ion-col>
{{d.id}}
</ion-col>
<ion-col>
{{d.titulo}}
</ion-col>
<ion-col>
{{d.etapa}}
</ion-col>
</ion-row>
</ion-grid>
</ion-content>
<ion-content padding>
<ion-grid>
<ion-row *ngFor="let d of lista">
<ion-col>
{{d.id}}
</ion-col>
<ion-col>
{{d.titulo}}
</ion-col>
<ion-col>
{{d.etapa}}
</ion-col>
</ion-row>
</ion-grid>
</ion-content>
Boton1
<button ion-button>Guardar</button>
Boton 2 (bloque)
<div padding>
<button ion-button color="primary" block>Guardar</button>
</div>
Pasar datos de una pagina a otra
this.navCtrl.push(ListaCompraPage, {
codigo: this.codigo,
descripcion: this.descripcion,
precio: this.precio,
cantidad: this.cantidad
});
<button ion-button>Guardar</button>
Boton 2 (bloque)
<div padding>
<button ion-button color="primary" block>Guardar</button>
</div>
Pasar datos de una pagina a otra
this.navCtrl.push(ListaCompraPage, {
codigo: this.codigo,
descripcion: this.descripcion,
precio: this.precio,
cantidad: this.cantidad
});
Variables globales
ionic generate provider global
import { Injectable } from '@angular/core';
import { Articulo } from '../../app/models/articulo';
@Injectable()
export class GlobalProvider {
public lista: Articulo[];
constructor() {
this.lista = [];
}
}
para utilizarlo:
constructor(public global: GlobalProvider) {
}
console.log(global.lista);
ionic generate provider global
import { Injectable } from '@angular/core';
import { Articulo } from '../../app/models/articulo';
@Injectable()
export class GlobalProvider {
public lista: Articulo[];
constructor() {
this.lista = [];
}
}
para utilizarlo:
constructor(public global: GlobalProvider) {
}
console.log(global.lista);
No hay comentarios:
Publicar un comentario