What are the alternatives to Java applets for running client programs using Chrome browsers?

I am working in a web application using ASP.net and C #.

My goal is to test a desktop application on a client computer. If it exists, I have to start it. If it doesn't exist, we have to download, install and run it.

I could develop this module using a Java applet, but unfortunately Google decided to disable NPAPI in September 2015, so the applet won't work in Chrome.

My question is about Applet alternatives that would help me implement the above scenario?

+3


source to share


3 answers


After looking for the most appropriate way to achieve my goal, I think using custom protocols would be a good solution to access my client applications from a web page.

This solution is used by many companies such as Microsoft (using mailto: to open the Outlook app) and Apple (using itms: to open the iTunes app) .



The following link is a very good link that talks about custom protocols: https://support.shotgunsoftware.com/entries/86754-How-to-launch-external-applications-using-custom-protocols-rock-instead-of-http -

+2


source


As soon as Google Chrome was the first to announce that they would no longer support NPAPI, they were also the first to provide a new architecture to rewrite their code to work in their browser. You can take a look at Native Messaging, which "can exchange messages with native applications using an API that is similar to other messaging APIs." The problem is that this approach only works on Chrome, not something that you can adapt to other browsers.

A more useful approach is FireBreath, a browser plugin in the NPAPI world. Check out the words below from one project buddy:



"FireBreath 2 will let you write a plugin that works in NPAPI, ActiveX or Native Messaging, it's close to being beta-tested. It doesn't have any real paint support, but it will work for what you describe the installation process. is a bit of a pain, but it works FireWyrm protocol which uses native messaging component can be used with any connection that allows text data transfer, it should be possible to make it work with js-ctypes on firefox or plausible WEB-RTC or even CORS AJAX in a way. At the moment the only thing we needed to solve was Chrome, but we did it in a way that is fairly portable to other technologies. "

+2


source


The only (semi) viable option as far as I can see is to offer the Chrome user a link to the JNLP file for the desktop application. Then when / if JWS desktop app starts, send the report to the server "loaded OK" and then "target app". installed / not installed ".

On your server, you have a timeout for the client's response. If that passes, assume that the client machine doesn't support Java at all and the user is checking some web services to try and figure out which application. opens JNLP!

+2


source







All Articles