javascriptneutralinojs

How to use Neutralinojs os.runCommand in multiple platforms


I was trying to get network information on Windows using Nuetralinojs. How can I make my app cross platform? I want to run ifconfig command when users execute this on Linux.

I have posted my HTML and JS codes below.

let work = () => {
    Neutralino.os.runCommand('ipconfig', 
      (data) => {
        document.getElementById('neutralinoapp').innerHTML = data.stdout.replace(/\n/g, '</br>');
      },
      () => {
        console.error('error');
      }
    );
}
    

Neutralino.init({
    load: () => {
        work();
    },
    pingSuccessCallback : () => {

    },
    pingFailCallback : () => {

    }
});
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>NeutralinoJs</title>
    <link rel="stylesheet" href="/assets/app.css">
  </head>
  <body>
    <div id="neutralinoapp">
    
    </div>
    <script src="/neutralino.js"></script>
    <script src="/assets/app.js"></script>

  </body>
</html>


Solution

  • You can check os simply using NL_OS global variable of Neutralinojs.

    If you are running cloud mode on a server window.navigator is not a solution.

    Here is the modified JS function.

    let work = () => {
        let command = NL_OS == 'Windows' ? 'ipconfig' : 'ifconfig';
        Neutralino.os.runCommand(command, 
          (data) => {
            document.getElementById('neutralinoapp').innerHTML = data.stdout.replace(/\n/g, '</br>');
          },
          () => {
            console.error('error');
          }
        );
    }