embedded browser using XULRunner - browser

Are there any examples of to use XULRunner to embed the browser control inside a app? (preferably in c or c++ for native win32 apps)
I have tried QT, wxWidgets, Awesomium, chrome embedded, LLmozLib, midori and Embedding/NewApi/Win32
The best one is wxWebConnect (which is part of wxWidgets framework). Why, cause you don't need the whole mozilla code base to build it plus the actual browser control is perfect as in plugins work, everything is rendered correctly (gmail, youtube etc etc)
So what's my problem or question? Well the wxWebConnect uses XULRunner to embed the browser control, my application is native win32 app and not wxWidgets app. I've searched the net to find another example of how use XULRunner to embed the gecko browser in native win32 apps..without luck!
Anyone know of projects/code that just use XULRunner and not require the entire mozilla source tree?
Thanks.

There's a list of XULRunner-based applications at
https://developer.mozilla.org/en/XULRunner_Hall_of_Fame

Whether you use wxWebConnect or embed XULRunner directly you are still going to have as part of your applications deployment the XULRunner engine and it's folder hierarchy. That's the nature of the beast.

Try GeckoFX, if you are okay with using .NET. Looking at the GeckoFX code might also give you enough insights to embed xulrunner in your native C++ Win32 app.

Related

Can I integrate a native app in a web browser?

I need to display a native app (in my case, a video game built on unity) in a web browser page.
Local video and input streaming would be a solution, but video encoding is consuming too much computer resources.
Is there a way to display a native app in a web browser page?
Sure, you need to compile your application for WebAssembly. Or, to be more precise, cross-compile it, since WebAssembly binary code runs on a virtual stack machine.
You take your native code, compile it into a .wasm module, and then load that .wasm module with WebAssembly.instantiateStreaming().
There are many toolchains that can have WebAssembly as the compilation target. I think the 2 most popular ones are Emscripten and wasm-pack.
There is also wabt, but that is rather a set of lower level tools, not quite a toolchain.
And since you mentioned Unity, I have no experience with it, but there is some official documentation on WebAssembly.
Here is a game that was developed in C# and cross-compiled to WebAssembly.

Using flutter mobile packages in flutter web

I am using flutter web and I want to use some packages that are available for the mobile in the web version of flutter. The pubspec of flutter web look a bit different from that of flutter mobile but this is not the real problem. What I am concerned about is that is it possible to add the packages availble for mobile into that of the web. If yes, what is the proper way to do so?
This is not currently possible (as of June 2019) for any package which is dependent on the mobile OS. The reason for this is that the plugins on mobile use platform channels to communicate with platform-dependent code implementations for Android and iOS written in java/kotlin for android or objc/swift for iOS.
The only way those packages would ever work on the web is if a web-specific implementation were written for them which I assume would either use an emscripten-compiled library or more likely some sort of javascript bridge to call the relevant browser APIs.
From the flutter for web readme:
flutter_web does not have a plugin system yet. Temporarily, we provide access to dart:html, dart:js, dart:svg, dart:indexed_db and other web libraries that give you access to the vast majority of browser APIs. However, expect that these libraries will be replaced by a different plugin API.
For any plugin that is 100% dart code, you should be able to just include it in your pubspec.yaml the same way you would in flutter - under dependencies.
yes you can by take source code packages from github and take codes inside lib file inside package and put it in your project and fix errors may happen inside files by change path import to:
import 'package:flutter_web/material.dart';
and some more changes may need to do it.
it will work 100% and so easy :)

WebKit vs QtWebKit as an embedded browser

I need an embedded browser in an application. I am thinking of either using WebKit and call it via some API or use QtWebKit.
I do not understand the difference between QtWebKit and WebKit.
does QtWebKit put some UI i.e. frame/window on top on WebKit?
I see that PhantomJS uses QtWebKit when it is being built.
Is there a way to use Chromium as an embedded browser?
Qt provides a cross platform UI framework similar to platform specific MFC (Windows). QtWebkit is Qt's port of WebKit web browser engine. This will mean that you will easily be able to use WebKit's functionality inside a Qt UI application which usually relies on signal/slot mechanism.
QtWebkit embeds Webkit and provides easy to use APIs for your application with the QWebView class. So, I suggest you use QWebView for browser functionality in your application. If interested integration internals, a QWebView::setUrl call, will fall through QWebView -> QWebPage -> QWebFrame -> QWebFrameAdapter to reach WebCore which is core renderer of WebKit. You can see that at QtWebkit github repo.
Pros
Integrating QtWebkit is far easier compared to directly integrating WebKit into your application. Unlike QWebView APIs, there will be no easy to use API's with WebKit. In addition you have to really familiar with WebKit for direction integration. Also note that WebKit project doesn't have releases. Only nightly builds, from which you have to choose from.
Also with QWebView, you will not have handles cases like drawing
combo box drop downs which WebKit leaves to the embedding
application.
Cons
Using QtWebkit, you will not get latest Webkit functionality as
it is released. You will have to wait it's port to QtWebkit.
You can use Qt's QtWebEngine class for using Chromium as embedded browser

Javascript framework support in phonegap for cross-platform?

Anyone have the idea of which Javascript framework is much supported by the cross platform
for PhoneGap App development.
I search on the web and find the JQuery Mobile framework but it is not much compatible with the android it shows problem with UI while it is much supported by the iPhone.
There is any JSframwork supported by the all max platform?
Please Help..
I personally use DataZombie's fork of jQTouch - https://github.com/DataZombies/jQTouch
The transitions and scrolling all work fine on Android unlike some of the others.
Android doesn't have a built-in theme for Android the way it does for iOS, but I was able to put one together for my app fairly easily (it's just CSS and a few images). When it is more complete I will probably release it, but you should be able to do your own or use the jet one (that looks fairly Android-ish).
None of the frameworks really looks like a proper native Android app out of the box as far as I have been able to tell. Nearly all of them seem to have a very iOS-centric navigation system (back buttons in nab bars, etc) that just don't exist in native Android apps. One of the first things I did in my theme was to get rid of any back buttons thus relying on the hardware back button for backward navigation (more like what Android users expect).

How to run C# 4.0 app on Linux OS using mono?

I want to run my c# application with OS Linux using Mono. I am new to this cross platform migration? Please tell the procedure for doing that?
Thanks & Regards.
It very much depends on what type of application it is. For a console or WinForms app, it may be simple. Mono doesn't support WPF.
Well, the first think you'll need to do is install Mono of course. Then you probably want to run MoMA to determine your application's compatibility. There's a whole separate page about porting WinForms apps.
If all is well, you should just be able to run your application using:
mono MyApplication.exe
after copying the binaries over.
If your application is actually a web service or web application, you'll want to think about the various hosting options.
I suspect you'll want to read a lot of the pages on the Mono Start Page.
Check if your application is 100% compatible with Mono Framework using MoMA.
Remove or replace those unimplemented parts with Mono's implementation or third party libraries that works with Mono. Or if you think it should work fine, just execute it with Mono Framework 2.8 or higher. Better go with 2.10 which is default's profile is on 4.0.
There is an IDE, MonoDevelop that supports Web and Desktop applications. Open the project files (monodevelop supports visual studio project files) from monodevelop, compile and run.
you can browse mono website here, where you can find which features are supported and which are not supported and why.

Resources