Uma das melhores potencialidades que podemos ter quando utilizamos uma aplicação é registar uma captura em arquivo e o Power Apps, no desenvolvimento de aplicações para ecrã (Canvas Apps) fornece-nos controlos que permite utilizar esse tipo de interação com a aplicação com bastante facilidade.
Neste caso do artigo em questão vamos utilizar a integração também do Power Apps com o Power Automate para ligar a aplicação ao OneDrive e armazenar a imagem capturada numa pasta.
Iniciar a aplicação
Para iniciarmos a aplicação vamos aceder ao endereço make.powerapps.com e acedemos ao menu lateral à opção Criar.

Vamos criar uma aplicação de raiz, começando com uma tela em branco.

De seguida escolhemos o tipo de aplicação que vamos criar, neste caso uma aplicação baseada em ecrã, Aplicação de Tela [Canvas App].

Neste cenário específico vou optar pelo layout de telemóvel, pois para capturar uma foto podemos utilizar o potencial da camara do nosso telemóvel o dispositivo para armazenar o ficheiro. Assim definimos o nome da aplicação o formato do ecrã e estamos prontos a iniciar!

Definir os controlos que vamos necessitar
Vamos começar por colocar todos os controlos que vamos necessitar para a nossa aplicação. Começamos por um retângulo, que representa o cabeçalho ou o Header da nossa aplicação.

De seguida inserimos uma etiqueta de texto para identificar o nosso ecrã. E colocamos o texto respetivo.

Depois inserimos o controlo de Câmara, que se enquadra nos controlos de Multimédia…

E uma Lista Pendente [DropBox] que nos vai permitir selecionar a câmara adequada no dispositivo.

Continuamos com a inserçao de um controlo de Imagem, que irá guardar a imagem capturada pela câmara.

Acrescentamos de seguida uma Caixa de Texto [Text Input] para podermos dar um nome ao ficheiro que vamos guardar.

E por fim um botão que quando ativo, vai correr o fluxo e guardar o ficheiro numa pasta do OneDrive.

Configurar os controlos
Depois de todos os controlos adicionados, necessitamos de fazer algumas configurações aos mesmos. Começando pela Lista Pendente [Drop Box] configuramos a propriedade Items para indicar quais são os itens de escolha na lista pendente. Neste caso acedemos a uma propriedade do controlo da Câmara que é a propriedade AvailableDevices que nos mostra as câmaras disponíveis de acordo com o dispositivo onde estamos. CameraCapturar.AvailableDevices (onde o nome CameraCapturar é o nome que dei ao nosso controlo)

A seguir vamos configurar o controlo de Imagem, onde na propriedade Image, acedemos mais uma vez a uma propriedade do controlo de câmara, neste caso da propriedade Photo: CameraCapturar.Photo (onde o nome CameraCapturar é o nome que dei ao nosso controlo).

Agora vamos configurar a caixa de texto. Aqui apenas temos de retirar o texto da propriedade Default e colocar um texto na propriedade HintText. Este texto basicamente indica para a necessidade do texto que devemos colocar.

Para configurarmos o botão iremos ter mais propriedades. Em primeiro lugar vamos alterar a propriedade DisplayMode, que representa a forma como o botão é apresentado. Aqui vamos definir uma lógica parecida com uma validação de dados: Se houver texto na caixa de texto, o botão está disponível, caso contrário estará indisponível.
A formula aplicada nesta propriedade (DisplayMode) será então a seguinte:
If( IsBlank(txtNomeFicheiro.Text); DisplayMode.Disabled; DisplayMode.Edit)

Capturar a Foto
Para capturar a foto, em modo de teste (Com a tecla ALT) basta efetuar um clique sobre o controlo da câmara. Neste caso imediatamente no controlo de imagem aparece a nossa captura.

Automatizar o fluxo para guardar a imagem
Para automatizarmos o fluxo que vai guardar a imagem no OneDrive, vamos utilizar o Power Automate que neste caso pode ser acedido diretamente através do nosso ecrã de desenvolvimento do Power Apps.

Começamos por criar um fluxo…

Onde neste caso o gatilho do fluxo (Trigger) já está identificado – Power Apps (V2). Nesta nova versão (V2) devemos definir os inputs necessários para interagir com a aplicação.

Neste caso vou definir apenas 2 inputs, um para o ficheiro (Imagem) e outro para o nome dado ao ficheiro. Em primeiro lugar o input para um Ficheiro [File], que será para a imagem.

E de seguida um Input do tipo Texto para colocar o nome do ficheiro.

De seguida acrescentamos um Novo Passo para aceder ao OneDrive onde vamos escolher a opção de criar um ficheiro.

Neste novo passo indicamos o caminho onde a imagem será guardada e adicionamos os inputs que virão da nossa aplicação respetivamente: Imagem e Nome.

Uma nota importante no parâmetro do conteúdo do ficheiro: contentBytes. Este input será importante para converter a nossa imagem no ficheiro arquivado.

Depois de definido o fluxo, vamos dar um nome e gravar!

Executar o fluxo
Para executarmos o fluxo, basta invocá-lo diretamente pelo Power Apps, neste caso vamos utilizar o botão e a propriedade OnSelect para quando pressionamos o mesmo, o fluxo ser executado.
ArmazenarImagem.Run(
txtNomeFicheiro.Text;
{
file: {
contentBytes: imgCapturada.Image;
name: txtNomeFicheiro.Text
}
}
)


Para guardar a foto, temos de colocar um nome para o ficheiro e pressionar o botão. Desta forma o fluxo será acionado e a imagem guardada na pasta definida por nós no OneDrive.


Leave a Reply