Partilhar via


Crie uma aplicação de tela com ligação profunda a um ecrã específico

Um cenário comum quando se constroem apps é a necessidade de partilhar uma "ligação profunda" com um ecrã específico. As ligações profundas são úteis quando pretende levar os utilizadores diretamente a um ecrã e dados específicos, em vez de lhes pedir que naveguem a partir do ecrã "home" da sua aplicação.

Para uma ligação profunda para o Power Apps, utilizará esta sintaxe URL: https://apps.powerapps.com/play/{App ID}?{Query}.

Nesta sintaxe:

  • ID de Aplicação — ID da aplicação. Aceda a Power Apps>Aplicações> Selecione a sua aplicação >Detalhes.
  • Consulta — O texto de consulta permite-lhe fornecer os dados para uma ligação profunda. Terá de fazer algumas alterações de código na sua aplicação de tela para utilizar os parâmetros fornecidos para abrir a aplicação utilizando o URL de consulta.

Neste artigo irá aprender a :

  • Criar uma aplicação de tela para lidar com o parâmetro de consulta.
  • Criar uma UI para enviar um link profundo diretamente a partir de um ecrã da sua aplicação.
  • Utilizar a aplicação para navegar para uma conta específica, enviar um e-mail com o link profundo e usar o link do e-mail recebido para abrir a app diretamente para essa conta.

Pré-requisitos

Criar a aplicação

Criar uma aplicação utilizando a tabela Contas no Microsoft Dataverse.

A sua aplicação abre o BrowseScreen, que mostra uma lista de contas numa galeria. Por predefinição, esta galeria mostra um endereço de e-mail, uma localidade e um nome da conta. A aplicação também contém DetailScreen e EditScreen.

Atualizar navegação

Agora vai definir a navegação para usar um contexto que usaremos para levar o utilizador a outro ecrã.

  1. No ecrã BrowseScreen, selecione Esquema sob as propriedades da galeria e selecione Título, subtítulo e corpo

    Vista de lista de contas.

  2. Selecione o primeiro registo da galeria BrowseGallery. E depois, em OnSelect introduza o seguinte:

    Navigate(DetailScreen1, Fade, {accountVal:ThisItem})
    

    Definir AccountVal.

    A função Navigate() cria uma variável de contexto chamada accountVal. Esta variável é povoada sempre que seleciona um registo da galeria. Ao selecionar o registo, será levado para o DetailScreen com o valor selecionado (neste exemplo, conta) em accountVal.

  3. A partir da vista árvore no lado esquerdo do ecrã, expanda o DetailScreen1 e selecione DetailForm1.

    Selecione DetailForm1 a partir da vista da árvore.

  4. A partir do painel de propriedades no lado direito do ecrã, selecione Editar campos e adicione os campos conta, Contacto principal e E-mail.

    Vista de detalhe de contas.

  5. Selecione DetailForme defina item para accountVal.

    AccountVal.

  6. Guardar com o nome "Conta de ligação profunda".

Obter o ID da Aplicação

O ID de aplicação é um GUID único que representa uma determinada aplicação, e que é gerado quando guarda a app na nuvem.

Para obter o ID de Aplicação, abra um novo separador e aceda a Power Apps>Aplicações> Selecione a sua aplicação >Detalhes. Mais informações: Obter um ID de aplicação

Detalhes da aplicação.

O objetivo deste exemplo é levar os utilizadores ao DetailsScreen1 quando a aplicação for lançada com o parâmetro de consulta accountId como parte do URL da aplicação. Para o efeito, utilizaremos a função Param() que recupera o parâmetro de cadeia de consulta fornecido durante o lançamento da app.

  1. Selecione App na Vista de árvore no lado esquerdo do ecrã.

    Sugestão

    Se tiver fechado Power Apps Studio, reabra a aplicação "Conta ligação avançada" guardada editando a aplicação.

  2. Selecione a propriedade OnStart da lista de propriedades.

  3. Para armazenar o valor de ID de aplicação, atualize a fórmula de propriedade OnStart tal como abaixo.

    Set(AppID, "GUID");
    If(Not(IsBlank(Param("accountId"))),Set(accountId,Param("accountId")));
    

    Nesta fórmula, a função Set() define o ID de aplicação para o GUID da aplicação. E a função Param() armazena o valor na variável accountId quando não está em branco.

    Nota

    Certifique-se de que substitui "GUID" na fórmula acima para o seu ID de aplicação, conforme apropriado.

    App OnStart fórmula com funções Definir e Param.

  4. Selecione a propriedade StartScreen para a aplicação e adicione o seguinte:

    If(Not(IsBlank(Param("accountId"))),DetailScreen1,BrowseScreen1)
    

    Esta função verifica se o Param. está em branco e, em seguida, permaneça no BrowseScreen1. Caso contrário, vá ao DetailScreen1.

    App StartScreen fórmula com função Param para redirecionar ou ficar com base no valor variável.

  5. Selecione DetailScreen1 a partir da Vista árvore.

  6. Selecione a propriedade OnVisible e introduza o seguinte:

    If(Not(IsBlank(accountId)), UpdateContext({accountVal:LookUp(Accounts, Account = GUID(accountId))}))
    

    Esta função utiliza accountId armazenada a partir do passo anterior para definir a variável accountVal.

    DetalheScreen1 com fórmula de propriedade OnVisible.

A sua aplicação está agora configurada para receber o accountId como o parâmetro que contém o GUID para uma conta a partir da tabela Contas. E quando este parâmetro for fornecido com o pedido à app, a aplicação abrirá diretamente o ecrã de detalhes (DetailScreen1) com a conta accountId.

Para invocar a aplicação com o valor do parâmetro, temos de usar a seguinte sintaxe:

https://apps.powerapps.com/play/{App ID}?{Query}

Na sintaxe acima, temos de adicionar o ID da aplicação e a consulta que contém a variável accountId com o seu valor.

Por exemplo, quando o seguinte URL foi introduzido num navegador para o inquilino da amostra, a Conta de ligação avançada abriu diretamente com o valor do parâmetro accountId da conta fornecida (neste exemplo, "A. Datum Corporation (exemplo)"): https://apps.powerapps.com/play/061b64cd-e5a0-4a7a-a77f-b6f8586dd6c7?accountId=01e5bf81-7d44-ec11-8c60-002248094566

Ligação de amostra com detalhes A. Datum Corporation (exemplo) abertos.

Também podemos fornecer uma accountVal variável para apontar para o ID da conta em vez de usar link absoluto explicado acima, enquanto invoca o URL para a conta dada a partir de dentro da app.

Para isso, vamos criar um botão e adicionar a capacidade de invocar um e-mail a partir da aplicação com a ligação avançada para o ecrã de detalhes da conta selecionada a partir da aplicação Conta de ligação avançada.

  1. Selecione Dados no lado esquerdo do ecrã.

  2. Selecione Adicionar dados> pesquise e selecione Office 365 Outlook> e selecione Ligar.

    Nota

    Esta ação adiciona a ligação Outlook Microsoft 365 para que possamos usar os próximos passos para invocar a composição de um e-mail para partilhar a informação da conta.

  3. Selecione DetailScreen1 a partir da Vista árvore.

  4. Insira um botão na parte inferior direita do ecrã e mude o seu nome para Conta partilhada.

  5. Na propriedade OnSelect do botão, insira o seguinte:

    Office365Outlook.SendEmailV2("Recipient", "Subject", "Here's the deep link to the selected account - https://apps.powerapps.com/play/{App ID}?accountId=" & accountVal.Account)
    

    Esta fórmula utiliza o conector Microsoft 365 para o Outlook para enviar um e-mail utilizando a operação SendEmailV2.

    Nota

    Substitua Destinatário, Sujeito e AppID na fórmula acima referida pelo endereço de e-mail do destinatário, sujeito para o e-mail e o ID da app.

    Partilhar botão de conta.

  6. Guarde e publique a aplicação.

Testar a aplicação

Executar a aplicação e ir para o ecrã de detalhes para qualquer conta. E, em seguida, selecione o botão Partilhar conta. A fórmula do botão OnSelect aciona um e-mail para o destinatário com o sujeito e o corpo configurados anteriormente. Aqui está uma amostra de e-mail enviada pela aplicação configurada:

E-mail enviado usando o botão Partilhar conta.

Abra o e-mail e copie a ligação avançada que aponta para a conta selecionada, e será levado diretamente para o ecrã de detalhes da conta na app de Conta de ligação avançada, em vez do ecrã de navegação predefinido.

A aplicação abriu usando o link a partir do e-mail.

Consulte também