es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué falla la verificación del tipo de archivo para compartir en la aplicación de uso compartido universal de Windows (UWP)?

Estoy intentando construir una aplicación universal de Windows que actuará como un destino de compartición, es decir, aparecerá en el encanto de compartición de esta manera:

enter image description here

Ahora, he creado una aplicación UWP y el manifiesto se ve así:
enter image description here

Añadí el código detrás de esto de la siguiente manera:
“`protected override async void OnShareTargetActivated(ShareTargetActivatedEventArgs args)
{
if (args.shareOperation.Data.Contains(StandardDataFormats.Text))
{
string text = await args.shareOperation.Data.GetTextAsync();

<pre><code> // Para mostrar el texto de este ejemplo, necesitas un control TextBlock
// con el nombre de "sharedContent".
//sharedContent.Text = "Texto: " + text;
}
}
“`

Sin embargo, la comprobación siempre falla incluso si estoy exportando el archivo de texto. ¿Qué estoy haciendo mal aquí?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Podría ser posible que la comprobación siempre falle porque el evento ShareTargetActivated no se está registrando correctamente. Aquí hay algunos pasos sugeridos para depurar el problema:

    1. Asegúrese de que el evento ShareTargetActivated esté registrado correctamente en el archivo App.xaml.cs. Debería lucir algo como esto:
    protected override void OnShareTargetActivated(ShareTargetActivatedEventArgs args)
    {
        // ...
    }
    
    1. Verifique si shareOperation es nulo. Si es nulo, significa que el destino compartido no se activó correctamente. Aquí hay un ejemplo de código:
    protected override async void OnShareTargetActivated(ShareTargetActivatedEventArgs args)
    {
        if (args?.ShareOperation == null)
        {
            return;
        }
    
        // ...
    }
    
    1. Intente verificar si hay formatos de datos diferentes en lugar de solo StandardDataFormats.Text. Por ejemplo, puede intentar verificar si hay StandardDataFormats.StorageItems para ver si se seleccionó un archivo.
    2. Verifique que el tipo de archivo que está intentando compartir esté registrado en el archivo de manifiesto. Verifique que la extensión del archivo se agregue a la sección “DataFormats” del elemento “ApplicationContentUriRules”.

    <applicationcontenturirules>
      <rule match="ms-appx:///" type="include"></rule>
      <rule match="ms-appdata:///" type="include"></rule>
      <rule match="ms-appx-web:///" type="include"></rule>
      <rule match="https://*.example.com/" type="include"></rule>
      <rule match="fileTypeAssociation.ext" type="include"></rule>
    </applicationcontenturirules>
    

    Siguiendo estos pasos, debería poder identificar el problema y resolverlo. ¡Buena suerte!

Comments are closed.