Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
System.Runtime.InteropServices.COMException al iniciar un archivo pdf en Windows Phone

Estoy tratando de abrir un archivo pdf usando el siguiente código de trabajo que usé anteriormente en otra aplicación,

pero esta vez obtengo System.Runtime.InteropServices.COMException cuando el flujo llega a esta línea: Windows.System.Launcher.LaunchFileAsync(pdffile);

¿Cuál es el significado de esta excepción y cómo deshacerse de ella?

Tenga en cuenta que sin preocuparse por esta excepción (deshabilitarla),

el archivo todavía no se puede abrir.

Tenga en cuenta: el archivo existe en mi carpeta aislada (verificada con wpowertool),

Probé con 2 archivos diferentes, por lo que no debería ser una cuestión de corrupción de archivos.

 public void openFile(string options) { System.Diagnostics.Debug.WriteLine("options: " + options); string optVal = JsonHelper.Deserialize<string[]>(options)[0]; asyncOpen(optVal); } public async Task asyncOpen(string filename) { filename = filename.Substring(2, filename.Length - 2); filename = filename.Replace("//", "/").Replace("/", "\\"); Windows.Storage.StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder; Debug.WriteLine("local: " + local.Path); Windows.Storage.StorageFile pdffile = await local.GetFileAsync(filename); Debug.WriteLine("pdffile: " + pdffile.Name); //// Launch the pdf file. Windows.System.Launcher.LaunchFileAsync(pdffile); }

esta publicación de MSDN me pertenece. Sí, el archivo está instalado y tengo Acrobat Reader.

Tenga en cuenta que este código C# es un complemento phonegap/cordova que se llama a través de javascript en mi aplicación híbrida.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Preste atención a los comentarios en este artículo de MSDN - Launcher.LaunchFileAsync(IStorageFile) :

La aplicación de llamada debe estar visible para el usuario cuando se invoca la API.
Esta API debe llamarse desde un subproceso ASTA (también conocido como subproceso de interfaz de usuario).


Enormes felicitaciones al OP por compartir la solución. El siguiente código debería ayudar a otros a solucionar este problema:

 Deployment.Current.Dispatcher.BeginInvoke(() => { asyncOpenFile(options); });
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda