Embedding native code in webapps on multiple platforms/browsers - javascript

I'm thinking of embedding native code (primarily for numerical computations) in a web application. Currently I'm aware of the following technologies for accessing native code from javascript:
ActiveX Objects in Internet Explorer on MS Windows
Native Client in Chrome/Chromium (Windows, OSX, Linux)
XPCOM for Firefox (I suppose also for all supported platforms)
Now I have two questions:
The list is clearly missing Safari/OSX and mobile browsers (iOS and Android). Are there any similar solutions for these?
Are there any efforts/projects to bring these thechnologies together or at least make the development of a cross-platform solution a bit less complicated as it will be anyway? (i.e. let you define your core interfaces/classes and help you generate wrappers for the different approaches)

Related

How well does Internet Explorer work with NodeJS, Javascript and HTML/CSS nowadays?

I'm unsure whether to create a desktop app via Electron or create a WebApp instead. My customers are to 70% IE (i believe mostly older versions) users and I don't want the app to run slow, crash or not support features and animations. So knowing how IE does nowadays would help me with this decision greatly.
IE does not support a lot of new functionality. But if you write your pages correctly that is not a problem. It can be difficult and expensive to get things to work in up-to-date browsers, mobile browsers and IE, but it can be done.
Electron is great since it provides the same browser interface for everyone. But Electron Apps can become very bloated and large. If you want to only use the latest HTML, CSS and JavaScript then Electron is much simpler to use then a Web App. But using Electron means that your customers will not be able to get at your code from their mobile devises.

How to develop web browser plugins instead of NPAPI(Deprecated from most of browsers)?

I want to develop a browser plugin for RTSP streaming on web browser, I read about NPAPI, which can execute native code(C++). But Google Chrome will not support NPAPI in future and no guaranty about Firefox also.
Please somebody can suggest me to "How can I develop plugin which can execute native code(OR any other language) using other framework instead of NPAPI?".
How can I add RTSP Streaming support for web browsers?
I'm afraid you cannot implement universal plugin at the moment. It's possible to write extensions for Chrome and Firefox which support TCP and UDP sockets (Chrome API, Mozilla API ). No such thing for Microsoft Edge or Explorer or Safari as far as I know.
If using different streaming protocol is an option, consider WebRTC. Its support is still not very good, but at least WebRTC is an official standard and has better chances of being adopted.
If you plan to develop an extension for the major browsers (IE, Firefox, Chrome and Safari) then I'd suggest looking into the kango framework. It takes a common code base and converts it into plugins for 3 of the 4 major browsers (for IE you'll have to contact them)

Is it possible to develop multi-platform game for mobile devices by using Construct 2?

I have been searching some tools for multi-platform game engine which support for all mobile devices(Android, IOS, Windows, Blackberry). I found Construct 2 game engine but I am worried about weather this will support for all mobiles or not? Is it possible to build game by using phonegap? Anybody help me to get more idea about this. Or else please suggest me other tools which we can develop games from scratch HTML5, Javascript.
While searching I found these engines 1. Quintus engine 2. Construct 2
Yes, It can, but via Web technology.
But before dig in deep, I'll say that, C2 is RAD drag-n-drop gamedev tool like GameMaker by YoYoGames, but not an engine. It has It's own runtime and plugin environment but It almost not support code in javascript directly but require to make Event-Sheets for programming game logics (Plugins will be coded with javascript).
As I know, Construct 2 runtime and plugins are based on JavaScript, then first exports the project to web platform or similar thing, and Uses some good wrapper. I don't know deeply about this topic but it would be wrappers...
When you export via the Cordova option, You'll install Intel XDK and import the exported project directory to the Intel XDK, add some settings, and cloud-build.
See this tutorial article for how to export to mobile devices (Android, iOS).
On other platforms, for example C2 uses NW.js for windows, which is node.js + Webkit, and for platforms which support web technology natively (Windows Store, BlackBerry, Tizen, etc...) It might (I don't know in deep about this) export with suited settings for that platform. Quite convenient.
See this tutorial article for how to export to Windows store platform (phone, desktop).
Not sure if you checked this out: https://www.scirra.com/
But it says here that you can develop for Windows, iOS, Android, Blackberry.
Here are a list of games made with Construct 2:
http://www.scirra.com/arcade
If you're still unsure about the engine, I recommend running simulators for each OS on your PC (using Virtual Box or etc..)
Good Luck!

Combine browser and web app for deployment

What's the best way to turn an HTML/Javascript web app into a self-contained app that can be run from Windows (and maybe Mac/Linux) PC's? Preferably without any installation, ie a network share.
I have looked into Chrome and Firefox Portable, but these require write access to the folder, so are unsuitable for running off a read-only network share.
(some background, I have a big javascript app but many of my clients are using IE6 or 7. Their IT teams won't allow Chrome Frame, or other modern browsers).
node-webkit sounds most promising.
From the README on the github repository:
node-webkit is an app runtime based on Chromium and node.js. You can
write native apps in HTML and Javascript with node-webkit. It also
lets you to call Node.js modules directly from DOM and enables a new
way of writing native applications with all Web technologies.
If LightTable can be built with it, certainly a web application can be ported and run natively using it.
I know this is a bit late, but what about Sencha Desktop Packager?
http://www.sencha.com/products/desktop-packager
It was primarily developed for ExtJS apps, but it should work on any JavaScript app.
We had a similar requirement and ended up building a dedicated web browser using QT. However if we'd known about the Sencha Desktop Packager before we may have gone for that.

Developing a cross-platform self-contained HTML application

I am thinking of building an application, kind of like TiddlyWiki in the sense that everything is self-contained in an HTML file, or at least in a bundle where a user won't have to install anything. It works on just about any browser, and on mobile phones (Android and iPhone), and in some browsers (e.g. Firefox), manages to save to the local filesystem without a plugin (albeit, it launches many security warnings, but there are other solutions for that). Other browsers happen to use a Java plugin to bypass this restriction.
Are there any technologies that exist that make this possible? HTML5's web storage sounds like it would be almost perfect, except that the data would be tied to the browser.
Any assistance would be appreciated (even if that just means editting / retagging the question to get more folks looking).
Whats about the fileapi: http://caniuse.com/#search=fileapi
I am just adding a relevant comment with this but not exactly an answer...
When you are saying that you want to develop application which contains everything... Then I would like to add about Titanium, PhoneGap, and others (Corona)...
This softwares provides JavaScript base which will be running on all the mobiles (if mobile applications), desktops (if desktop applications) and so on.... But Titanium (as i am working on it) works on the SDK of all the other languages for development...
Now TiddlyWiki, what i have understood from the link is that it is creating a web application or something like that which will work on all the other mobile devices. But this is NOT Good always, Since some application needs to be a NATIVE environment (which is supported by Titanium). Native applications will be much more faster than any other developed applications..

Categories

Resources