Aplicaciones de Windows
Contraer la tabla de contenido
Expandir la tabla de contenido

Cómo recibir texto (aplicaciones de la Tienda Windows con JavaScript y HTML)

El texto es posiblemente el más común de todos los formatos de datos que los usuarios comparten. Además de ser la prima opción para el contenido como las actualizaciones de estado, es una opción recomendada para las aplicaciones que comparten vínculos, contenido HTML y otra información.

Al escribir una aplicación de destino, normalmente debes admitir texto como parte de la operación de uso compartido. Esto garantiza que los usuarios puedan seleccionar tu aplicación en una amplia variedad de situaciones. Dicho esto, no admitas texto si crees que solamente confundirá a los usuarios. Por ejemplo, si tu aplicación trabaja con archivos principalmente, una representación de texto de esos archivos no cumplirá con las expectativas de los usuarios.

Lo que debes saber

Tecnologías

Requisitos previos

  • Debes estar familiarizado con Microsoft Visual Studio 2012 y sus plantillas asociadas.
  • Debes estar familiarizado con JavaScript.

Instrucciones

Paso 1: Admite el Contrato para aceptar contenido compartido.

Antes de que tu aplicación pueda recibir contenido compartido, debes declarar que admite el Contrato para aceptar contenido compartido. Este contrato permite que el sistema sepa que tu aplicación está disponible para recibir contenido. Si usas una plantilla de Microsoft Visual Studio para crear tu aplicación, aquí te mostramos como admitir el Contrato para aceptar contenido compartido:

  1. Abre el archivo de manifiesto (package.appxmanifest).
  2. Abre la pestaña Declaraciones.
  3. Selecciona Compartir destino en la lista Declaraciones disponibles.
  4. Haz clic en Agregar para agregar compatibilidad con el Contrato para aceptar contenido compartido en tu aplicación.

Paso 2: Especifica que tu aplicación admite texto.

Al escribir una aplicación de destino, puedes especificar los formatos y los tipos de archivo. Para especificar los tipos de archivo admitidos:

  1. Abre el archivo de manifiesto.
  2. En la sección Tipos de archivo admitidos, haz clic en Agregar nuevo.
  3. Escribe .txt. Debes incluir el punto (.) que aparece antes de "txt", no el que aparece después.

Para especificar la compatibilidad con el texto como formato de datos:

  1. Abre el archivo de manifiesto.
  2. En la sección Formatos de datos, haz clic en Agregar nuevo.
  3. Escribe "text" (sin las comillas).

Los pasos anteriores agregan la siguiente sección al manifiesto:


<Extensions>
  <Extension Category="windows.shareTarget">
    <ShareTarget>
      <DataFormat>text</DataFormat>
    </ShareTarget>
  </Extension>
</Extensions>

Nota  Puedes especificar un punto de entrada de diferente cuando tu aplicación se activa para el Contrato para aceptar contenido compartido. Para ello, modifica la entrada Página de inicio en la sección Configuración de la aplicación de la declaración Compartir contenido, en el manifiesto de la aplicación. Es muy recomendable que uses también un archivo de JavaScript diferente para administrar la activación de esta página. Para ver un ejemplo, consulta Muestra de una aplicación de destino de contenido compartido.

Paso 3: Agrega un controlador de eventos para detectar el momento en que se activa tu aplicación.

Cuando un usuario selecciona tu aplicación para compartir contenido, Windows la activa. Debido a que hay muchas maneras en las que Windows puede activar tu aplicación, necesitas agregar el código que detecta el motivo por el que se produjo la activación. Para hacer esto, debes activar el valor de la propiedad kind.


app.onactivated = function (args) {
    if (args.detail.kind === activation.ActivationKind.launch) {
        // The application has been launched. Initialize as appropriate.
    } else if (args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.shareTarget) {
        ...
    }
};

Paso 4: Obtén el objeto ShareOperation.

El objeto ShareOperation incluye todos los datos que tu aplicación necesita para obtener el contenido que un usuario quiere compartir.


shareOperation = args.detail.shareOperation;

Paso 5: Vuelve rápidamente del controlador del evento activado.

El controlador del evento activated debe volver rápidamente. Pon en cola un evento asincrónico del controlador del evento activated para que el procesamiento de los datos compartidos se realice después de que vuelva el evento activado.


WinJS.Application.addEventListener("shareready", shareReady, false);
WinJS.Application.queueEvent({ type: "shareready" });

Los pasos restantes implementan la función shareReady.

Paso 6: Comprueba si los datos compartidos contienen texto.

La propiedad shareOperation.data contiene un objeto DataPackageView. En esencia, este objeto es una versión de solo lectura del objeto DataPackage que la aplicación de origen usó para crear los datos. Usa este objeto para ver si el contenido que se va a compartir está disponible en formato de texto.


if (shareOperation.data.contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.text)) {
    // Code to process text goes here.      
}


Es recomendable comprobar si DataPackage contiene el formato de datos que te interesa, aunque tu aplicación admita solo un formato. Esto facilita la compatibilidad posterior con otros formatos de datos.

Paso 7: Procesa el texto.

Para obtener el texto, llama al método DataPackageView.getText.


shareOperation.data.getTextAsync().done(function (text) {
    // To output the text using this example, 
    // you need a div tag with an id of "output" in your HTML file.
    document.getElementById("output").innerText = text;
});

Por supuesto, lo que haces con el texto depende de tu aplicación.

Paso 8: Llama a reportCompleted.

Una vez que la aplicación termina de compartir el contenido correctamente, llama a reportCompleted. Después de llamar a este método, Windows descarta tu aplicación.


shareOperation.reportCompleted();


Observaciones

Consulta el código de la Muestra de una aplicación de destino de contenido compartido para ver la experiencia completa de una aplicación que recibe texto como parte de un uso compartido.


var shareOperation = null;

function shareReady(args) {
    if (shareOperation.data.contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.text)) {
        shareOperation.data.getTextAsync().done(function (textValue) {
            // To output the text using this example, you need a div tag with an 
            // id of "output" in your HTML file.
            document.getElementById("output").innerText = textValue;
        });
    }
}

app.onactivated = function (args) {
    if (args.detail.kind === activation.ActivationKind.launch) {
        // The application has been launched. Initialize as appropriate.
        args.setPromise(WinJS.UI.processAll());
    } else if (args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.shareTarget) {
        // This app has been activated share.
        args.setPromise(WinJS.UI.processAll());

        // We receive the ShareOperation object as part of the eventArgs.
        shareOperation = args.detail.shareOperation;

        // We queue an asychronous event so that working with the ShareOperation object 
        // does not block or delay the return of the activation handler.
        WinJS.Application.addEventListener("shareready", shareReady, false);
        WinJS.Application.queueEvent({ type: "shareready" });
    }
};

Temas relacionados

Muestra de una aplicación de destino de contenido compartido
Uso compartido e intercambio de datos
Cómo recibir archivos
Cómo recibir HTML
Cómo recibir una imagen
Cómo recibir un vínculo
Inicio rápido: recepción de contenido compartido
DataPackage
Windows.ApplicationModel.DataTransfer
Windows.ApplicationModel.DataTransfer.Share
Directrices para depurar aplicaciones de destino

 

 

Mostrar:
© 2018 Microsoft