I'm wondering if there is a Web Browser that I can embed in my Applications and that is cross-Platform (Windows, OS X, Linux)?
I'm undecided about the programming language, but I guess I'll have to go the C++ route (in which case I'd likely choose Qt as a GUI Framework) unless something for .net/mono or Java exists?
Doesn't need to be too fancy, but should ideally be free/open source. I know I could just grab the WebKit sources, but these are HUGE, and I wonder if they are really intended for embedding or if there is a browser that is already embeddable?
It does not have to be the latest and greatest, although Ogg Theora support would be excellent (or at least some way for me to add it)
I have found this Webkit based browser:
Arora
As #Andrey noted in his comment WebKit is itself embeddable. If you use Qt then you can easily embed it into your application using QtWebKit.
This is a java solution, but you might want to look at jdic.
https://jdic.dev.java.net/
Eclipse includes a web browser which you might be able to use. I have no experience with actually using it, but it works ok for webpages inside Eclipse.
Related
I have a small project that i was wondering if it is possible to do with java.
I know that VB .net has the ability to make a simple web browser using an Internet explorer interface. I was wanting to do the same thing with java. Unless somebody knows how to compile VB on linux and would like to explain it to me.
Please tell me if you need anymore information.
JEditorPane has limited HTML rendering support, but no javascript engine
If you want Internet Explorer specifically, it's not going to be possible in the same way. VB.net uses the part of Internet Explorer that is built into the system. In other words, it is referencing a part of the Windows system, so you need to be running Windows to use it, regardless of the language.
You would need to use a tool such as http://www.ezjcom.com/ to get a COM wrapper in Java, from there you can embed IE as an ActiveX object.
All of these pieces might make it a little slow or cumbersome, but it should be possible.
In my company we want to make a desktop software, but we want to create the better experience in the most common platforms (Windows(XP/VISTA/7), Linux and MacOs (And iOS) and several smartphones (android, webOS, windows mobile)
We have studied 3 options 1.- .Net, 2.- Java, 3.- C++ with Qt
We discarded .Net because we don't like the .net support in mac and linux. So, we have 2 options, Java and Qt. Qt sounds very good, but I don't like c++. Java sounds good, but I have the idea (and maybe i'm wrong, you tell me), that java never has the "look and feel" of a real native application. In this moment, the better choices look to be Qt, but i would like the advice of people with more knowledge and experience than me.
Thanks in advance
In my opininon and experience, Qt works fine on many platforms, although I have never tried Mac. Also, the Qt documentation is very well done,complete and easy to understand.
As for Java, I agree that it does not look perfectly native on platforms.
Hope this helps.
Eclipse is written in Java, and it has the look and feel of a native application. The reason is that it uses the SWT libraries. The SWT libraries use native widgets.
You could use some 'web' technology, either the browser or something like Adobe Air. There is no rule saying that a browser app has to run on the internet. HTML5 is going to provide advanced features that are only going to blur the lines between the web and the desktop.
This route has some advantages:
1) There are a bunch of libraries available for developing these applications, Sproutcore, ExtJS, etc.
2) You write javascript, html, css.
3) A lot of developers are familiar with these technologies, so you have a large pool of talent from which to draw.
4) Cross platform
5) Both desktops and mobile devices have browsers. So you won't have (as many) platform dependent versions of your software.
This idea might not be right for whatever you are trying to do, but you can consider it.
We have a client side application (Java/Swing) that we need an HTML rendering control for.
What I want to find is the most widely adopted, most heavily developed, easiest to deploy solution to get Gecko or WebKit into a Swing app (Needs to run OS X and Windows).
The limited (crappy?) JEditPane type solutions are not robust enough for our needs. We would really like to use either WebKit or Gecko.
Some libraries seems to exist that would allow this:
(QT WebKit) http://trac.webkit.org/wiki/QtWebKit
(JRex) [can not post URL because I am new]
etc.
Whats the best library to achieve this?
Doing a quick Google search tells me that there is a JWebPane in JavaFX.
Have a look here.
I am a fresher in web developing , is I ve to study applets?
If you are a Java person, maybe look at JavaFX instead (even though it is not clear yet if that technology will take off any more than applets did).
If you are a web design person, do not even think about it before you got acquainted with Flash and HTML5. Applets are quite marginal at this point.
Most folks say no, but I still see a lot of great uses for Applets and in fact have seen really complex commercial UIs coded within the context of an applet.
in a short word, no, applets are a dead technology for the general purpose web.
on intranets with lots of bandwith and controlled client environments they maybe of some valid use.
look at Google Web Toolkit (GWT) as an alternative to creating applets.
Adobe Flex is also a good alternative now.
If you want an embedded client application, the Java Web Start (the better Google keyword is JNLP) is less or more the successor of the legacy Java Applet. Alternatives to this are Adobe Flash and MS ClickOnce.
If you want an RIA (Rich Internet Application), then JavaFX is the better Java based choice. Alternatives to this are the MS SilverLight, Adobe Air and Adobe Flex.
Apart from JavaFX, Flash, you can learn about Adobe AIR and Microsoft Silverlight. They are kind of extending the limits of what was earlier possible with just Flash
There is still one thing that I know of that a Java applet can do and Silverlight, Flex (non-AIR), etc can't do:
Drag and drop from the filesystem.
Flex offers a o/s based browse and select filesystem access. Silverlight has a similar functionality. But to the best of my knowledge if you want the user to drag a file from Windows Explorer etc. into a web-site based control, Java applets are pretty much your only choice. You could create a Flex based app using Adobe AIR that can ask the filesystem outside the o/s browse and select dialog but I'm not convinced the AIR install base is adequate yet. Probably depends on your target customer (early adopter, install whatever you say to vs. stable corporate user with IT lockdown on their workstation).
If someone knows otherwise for certain, please comment!
But to answer the original question, unless you need the drag and drop filesystem to web functionality, I would spend your time on Flex. Silverlight and Java FX can't compete with Flash for market penetration. Since Flex compiles to flash, it has a very high install base (>95% of internet enabled computers) and its base updates to the newest version frequently. Inserting a flash file into a browser is a easier than the arcane art of applets.
if you want/might get a job where you maintain old applications then probably you will deal with Applets.
For new projects, dont get close to it.
I'm working on some Flex spike in my company. We are basically evaluating different scenarios etc. What solution would you recommend for embedding Flex components into Java app? Flex <-> Java communication is not (yet...) an issue, just embedding swf into JFrame.
I've done it with EasyJCom. It's pretty straight forward as long as you're using one of the standard Java windowing libraries (Swing, awt). You can see an example (From the EZJCom site) here: http://www.ezjcom.com/FlashTest.java.txt
The people responsible for EasyJCom are also very responsive, and even though we ended up not using their product (Switching platforms), I'd recommend them.
I haven't used JFlashPlayer, but did take a look at the docs, it seems to be adequate as well. I think their license requires you to obfuscate your code. I thought it was a little odd, but maybe I mis-understood the license.
It gets quite a bit more complicated if you don't want to use Com, or if you need to embed in another type of window.
If you need to embed flash cross platform, you may be stuck rolling your own Jini library for the Mozilla plugin. At that point... Maybe it's worth just switching platforms if you aren't too far in. ;)
Haven't tested this, but it looks like JFlashPlayer will do the job. http://www.jpackages.com/jflashplayer/
None of these supports Linux or MacOS. So much for the cross-platform Java and Flash.
I think the best way to do something like this would be to embed something like xulrunner into your java app then have the java app interact with flash via the xulrunner interfaces.