Como compartilhar um link (HTML)

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]

Links, ou URls (Uniform Resource Identifiers), são outro formato de dados comum que os usuários querem compartilhar. A razão mais comum para compartilhar um link é quando um usuário seleciona um especificamente. No entanto, recomendamos também que o aplicativo ofereça suporte ao compartilhamento de links.

  • Quando o conteúdo selecionado pelo usuário também está disponível online.
  • Como uma fonte secundária ao compartilhar HTML.

O que você precisa saber

Tecnologias

Pré-requisitos

  • Você deve estar familiarizado com o Visual Studio e com os modelos a ele associados.
  • Você deve ter familiaridade com JavaScript.

Instruções

Etapa 1: Obter o objeto DataTransferManager

Os objetos DataTransferManager são o ponto de partida de qualquer operação de compartilhamento.

var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();
    dataTransferManager.addEventListener("datarequested", shareAsyncHandler);

Etapa 2: Adicionar um manipulador de eventos para o evento datarequested

Adicione um manipulador de eventos DataRequested para disparar quando o usuário desejar chamar a opção Compartilhar. Em um aplicativo da Windows Store, isso ocorre automaticamente quando o usuário chamar o botão Compartilhar. Se estiver desenvolvendo para Windows Phone, não haverá botão Compartilhar interno, portanto você precisará adicionar um controle para o usuário tocar e disparar o manipulador.

dataTransferManager.addEventListener("datarequested", function (e) {
    // Code to handle event goes here.
});

Etapa 3: Obter um objeto DataRequest

Quando ocorre um evento datarequested, o seu aplicativo recebe um objeto DataRequest. Este objeto contém um DataPackage que você pode usar para fornecer o conteúdo que o usuário quer compartilhar.

var request = e.request;

Para adicionar o link, use o método setUri.

request.data.setUri(new Windows.Foundation.Uri("http://www.fabrikam.com"));

Comentários

Para aplicativos que compartilham um URI de protocolo de ativação, adicione algumas informações adicionais ao DataPackage além da URI. Isso ajuda a assegurar que os aplicativos de destino possam fornecer a melhor experiência para todos os usuários, incluindo aqueles que usam um sistema operacional diferente.

  • Forneça um bom título e uma boa descrição para o conteúdo.
  • Inclua um trecho do HTML que descreve o conteúdo que está sendo compartilhado, e inclua o URI inline. Recomendamos incluir uma cadeia de caracteres para enfatizar que o link funciona para os usuários do Windows 8 e, se possível, forneça um link de Web adicional para usuários em um sistema operacional diferente.
  • Inclua uma versão do texto de seu trecho de HTML.

Alguns aplicativos de destino podem se registrar para dar suporte a URIs mesmo se puderem efetivamente manipular somente URIs de http:// ou https://. O fornecimento de formatos de dados alternativos aumenta a probabilidade de o aplicativo de destino completar com êxito o seu cenário.

Exemplo completo

Aqui está um exemplo de uma função que define um link do usuário para compartilhamento. Para obter um exemplo mais complexo, consulte a nossa amostra da galeria de código.

function registerForShare() {
    var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();
    dataTransferManager.addEventListener("datarequested", shareLinkHandler);
}

function shareLinkHandler(e) {
        var request = e.request;
        request.data.properties.title = "Share Link Example";
        request.data.properties.description = "A demonstration that shows how to add a link (URI) to share.";
        request.data.setUri(new Windows.Foundation.Uri("http://www.fabrikam.com"));
}

Tópicos relacionados

Exemplo de aplicativo de compartilhamento de origem de conteúdo

Compartilhando e trocando dados

Como compartilhar arquivos

Como compartilhar HTML

Como compartilhar texto

Início rápido: compartilhando conteúdo

DataPackage

Windows.ApplicationModel.DataTransfer

Windows.ApplicationModel.DataTransfer.Share