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

207
Visualizações
JavaScript: use dos diálogos separados en el mismo controlador de electrones nodeJS (CERRADO)

Quiero crear dos cuadros de diálogo de electrones separados, uno para la selección de archivos APK y otro para la selección de directorios para poder seleccionar una carpeta APK descompilada.

El uso de un cuadro de diálogo para la selección de archivos y la selección de directorios al mismo tiempo no se puede hacer tanto en Linux como en Windows, a diferencia de cómo se puede hacer en MacOS.

Entonces, después de un tiempo hablando con los desarrolladores en github.com/electron/electron , me dijeron que es posible usar 2 diálogos separados en el mismo archivo JavaScript que uso como controlador principal para mi aplicación de escritorio Linux, como una solución a esto para Linux y Windows.

Los desarrolladores me señalaron esta página aquí en electronjs.org , pero desafortunadamente tengo problemas para entender algo, así que terminé aquí en stackoverflow.

El código que he logrado producir hasta ahora está a continuación, cualquier ayuda sobre esto sería apreciada.

 // First dialog for File Selection | This works fine $appCtrl.BrowseApk = () => { dialog.showOpenDialog({'File browser'}, { properties: ['openFile'] }).then(result => { if(result.canceled) { $appCtrl.Log("No file selected"); } else { $appCtrl.Log("File selected" + result.filePaths[0]); readFile(result.filePaths[0]); } }).catch(() => { $appCtrl.Log("No file selected"); }) function readFile(filepath) { $appCtrl.filePath = filepath; $appCtrl.$apply(); }) // Second Dialog for Folder Selection | This breaks my electron UI $appCtrl.BrowseFolder = () => { dialog.showOpenDialog({'Folder browser'}, { properties: ['openDirectory'] }).then(result => { if(result.canceled) { $appCtrl.Log("No directory selected"); } else { $appCtrl.Log("Directory selected" + result.filePaths); readFile(result.filePaths); } }).catch(() => { $appCtrl.Log("No directory selected"); }) function readFile(filepath) { $appCtrl.filePath = filepath; $appCtrl.$apply(); })
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

¡Problema resuelto! todo lo que tenía que hacer era lo siguiente a continuación.

 //function to open the dialog and an choose apk file $appCtrl.BrowseApk = () => { dialog.showOpenDialog({ properties: ['openFile'], title: 'Choose APK to bind', buttonLabel: 'Select APK', filters: [ { name: 'Android APK', extensions: ['apk'] } // only select apk files ] }).then(result => { if(result.canceled) { $appCtrl.Log("No file selected"); //if user cancels the dialog } else { $appCtrl.Log("File choosen " + result.filePaths[0]); //if user selects an APK file readFile(result.filePaths[0]); } }).catch(() => { $appCtrl.Log("No file selected"); }) function readFile(filepath) { $appCtrl.filePath = filepath; $appCtrl.$apply(); } }
 // function to select decompiled APK folder $appCtrl.BrowseFolder = () => { dialog.showOpenDialog({ properties: ['openDirectory'], title: 'Choose decompiled APK folder', buttonLabel: 'Select Folder', filters: [ { name: 'Folders', extensions: ['*'] } ] }).then(result => { if(result.canceled) { $appCtrl.Log("No folder selected"); } else { $appCtrl.Log("Folder choosen " + result.filePaths[0]); //if user selects a Decompiled APK file readFile(result.filePaths[0]); } }).catch(() => { $appCtrl.Log("No folder selected"); }) function readFile(filepath) { $appCtrl.filePath = filepath; $appCtrl.$apply(); } }
about 4 years ago · Juan Pablo Isaza 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