Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

304
Visualizações
Diálogo de procesamiento después de QR Scan en Xamarin

Estoy usando QR Code Scanner en la aplicación Xamarin, cuando escanea el código qr, realiza algunas operaciones que demoran aproximadamente un minuto, mientras realiza la operación, quiero mostrar un cuadro de diálogo de carga en la pantalla. Pero no se muestra en la pantalla, y en otras partes de la aplicación, funciona perfectamente.

Código

 var expectedFormat = ZXing.BarcodeFormat.QR_CODE; var opts = new ZXing.Mobile.MobileBarcodeScanningOptions { PossibleFormats = new List<ZXing.BarcodeFormat> { expectedFormat } }; var scanner = new ZXing.Mobile.MobileBarcodeScanner(); var result = await scanner.Scan(opts); if (result == null) { // code return null; } else { using (UserDialogs.Instance.Loading("Processing")) { // code } }

EJEMPLO DE CÓDIGO DE ACTUALIZACIÓN

 public async Task Verification(object sender, EventArgs e) { try { var expectedFormat = ZXing.BarcodeFormat.QR_CODE; var opts = new ZXing.Mobile.MobileBarcodeScanningOptions { PossibleFormats = new List<ZXing.BarcodeFormat> { expectedFormat } }; var scanner = new ZXing.Mobile.MobileBarcodeScanner(); var result = await scanner.Scan(opts); if (result == null) { // Code return null; } else { try { // QR Scan Result string qr_scan = result.Response; var result = JsonConvert.DeserializeObject<QRScan>(qr_scan); await CreateConnection(); } catch (Exception error) { } finally { // navigate to next page await NavigationService.NavigateToAsync<NextViewModel>(); } } } catch (Exception error) { } return null; } public async Task CreateConnection() { UserDialogs.Instance.Loading("Processing"); if () { try { // Code } catch (Exception error) { // Code } finally { await CreateFolder(default, default); } } } public async Task CreateFolder(object sender, EventArgs e) { UserDialogs.Instance.Loading("Processing"); try { // Code } catch (Exception error) { // Code } return null; }
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Prueba algo como esto

 Device.BeginInvokeOnMainThread(async () => { try { using (UserDialogs.Instance.Loading(("Processing"))) { await Task.Delay(300); //Your Service code } } catch (Exception ex) { var val = ex.Message; UserDialogs.Instance.Alert("Test", val.ToString(), "Ok"); } });
over 4 years ago · Santiago Trujillo Relatório

0

Puede usar la clase MainThread de Xamarin.Essentials y, más específicamente, el método InvokeOnMainThreadAsync . La idea de este método es no solo ejecutar un código en la interfaz de usuario/subproceso principal, sino también esperar su código. De esta manera, puede tener tanto la lógica asíncrona/espera como la ejecución del subproceso principal.

 try { // QR Scan Result string qr_scan = result.Response; var result = JsonConvert.DeserializeObject<QRScan>(qr_scan); await MainThread.InvokeOnMainThreadAsync(() => CreateConnection()); } catch (Exception error) { } finally { // navigate to next page await NavigationService.NavigateToAsync<NextViewModel>(); }

Tenga en cuenta que si el método CreateConnection tarda mucho tiempo en ejecutarse, sería mejor ejecutar en el subproceso principal solo la presentación del diálogo ( UserDialogs.Instance.Loading("") ).

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda