Componentes prontos com facilidade para implementação e todo o suporte e documentação necessário.
- Facilidade para Desenvolver
- Multiplas Plataformas (Android/IOS)
Quanto maior o numero de blibliotecas no seu package.json maior vai ser para manter atualizado no futuro.
https://developer.android.com/studio?hl=pt-br
- Angular CLI Instalado
- NPM Instalado
- Ter criado algum projeto em Angular
- Saber trabalhar com REST Protheus
https://marketplace.visualstudio.com/items?itemName=ionic.ionic
https://ionicframework.com/docs/angular/your-first-app
node -v
npm -v
npm install -g @ionic/cli
Iniciar projeto com um template
ionic start treinamento-advpl-poui-angular-ionic --type=angular
Opcional: Inicia o projeto com um template em branco
ionic start treinamento-advpl-poui-angular-ionic blank --type=angular
treinamento-advpl-poui-angular-ionic => Nome do projeto
ionic integrations enable capacitor
ionic capacitor add android
npm install @capacitor/camera
Código:
import { Camera, CameraResultType } from '@capacitor/camera';
const takePicture = async () => {
const image = await Camera.getPhoto({
quality: 90,
allowEditing: false,
resultType: CameraResultType.Uri
});
const imageUrl = image.webPath;
// Use o imageUrl em um elemento <img>
};
npm install @capacitor-community/barcode-scanner
Sincroniza com o capacitor
npx cap sync
- Abra o arquivo android/app/src/main/AndroidManifest.xml.
- Adicione a permissão de câmera dentro da tag :
<uses-permission android:name="android.permission.CAMERA" />
import { Component } from '@angular/core';
import { BarcodeScanner } from '@capacitor-community/barcode-scanner';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
constructor() {}
async startScan() {
// Verifica se tem permissão
const status = await BarcodeScanner.checkPermission({ force: true });
if (status.granted) {
// Começa o scanner
await BarcodeScanner.hideBackground(); // Oculta o fundo da webview
const result = await BarcodeScanner.startScan(); // Inicia a leitura
// Se o resultado não foi cancelado, exibe o conteúdo
if (result.hasContent) {
console.log(result.content); // O conteúdo do QR code ou código de barras
alert(`Código escaneado: ${result.content}`);
}
} else {
// Solicita permissão se necessário
alert('Permissão para usar a câmera foi negada');
}
}
stopScan() {
BarcodeScanner.stopScan(); // Para o scanner se for necessário
}
}
Preciso? Não, entretanto você pode usar vários componentes em conjunto com o Angular e PO-UI
ng add @po-ui/ng-components
ionic capacitor run android
ionic serve
ionic build
ionic capacitor sync
ionic capacitor open android
Ferramenta dentro do Android Studio que utilizamos para Simular
Utilizar o Android Studio para Depurar
npx cap open android
Para esse Comando funcionar precisar que o Android Studio esteja instalado e com o AVD esteja configurado
Usar o Chrome DevTools (opcional)
chrome://inspect
Monitorar Logs
Por padrão o Android somente deixa comunicação com HTTPS (REST), no cenário onde precisamos se comunicar internamente com HTTP, em uma rede interna precisamos habilitar isso no AndroidManifest.xml
Para conexão externa (Fora da Rede do cliente) utilize sempre HTTPS com boas práticas de segurança
Para gerar o APP para IOS é necessário MAC