Qualcuno ha mai incorporato la tecnologia del browser Web Firefox nella propria GUI C/C++ [non gestita] nello stesso modo in cui IE può essere incorporato come oggetto COM? (Mi piacerebbe farlo su Linux, non su Windows). Ci sono alternative "migliori" a Firefox? Sono aperto a tutto il tempo che posso usarlo con codice non GPL. I miei bisogni sono abbastanza basilari; Ho solo bisogno dell'analisi HTML di base e della visualizzazione di file statici locali, ma mi piacerebbe avvalermi di una tecnologia più sofisticata, se riesco a ottenerla. Mi piacerebbe essere in grado di usare JavaScript, ma posso farcela senza.Come posso incorporare Firefox in un'applicazione GUI?
risposta
Check out webkitgtk. Non è Gecko, ma basato su Webkit. Fornisce fondamentalmente un widget del browser Web che può essere utilizzato nelle applicazioni GTK +. Se vuoi incorporare mozilla, ci sono cose nei repository mercuriali per il repository Mozilla che ti permettono di farlo, ma non mi è sembrato molto supportato l'ultima volta che ho controllato.
È possibile utilizzare parti di Firefox (come il renderer Gecko) in altre app. Esistono vari approcci a questo, tra cui wxWebConnect, un controllo del browser Web per wxWidgets. Vedi anche Embedding Gecko
Un'altra soluzione popolare è WebKit. Ancora una volta, ci sono vari modi per usarlo, incluso QtWebKit (un wrapper per il toolkit Qt) e webkitgtk (già citato da SB).
Per prima cosa è necessario distinguere tra motore HTML e motore JavaScript.
Il motore di rendering HTML di Firefox si chiama Gecko. Ed ecco una guida su Embedding Gecko in your application.
motore JavaScript FirefoxS si chiama SpiderMonkey e qui è How to Embed SpiderMonkey in your C application
Dai un'occhiata alla CEF (Chromium Embedded Framework). È molto simile a WebKit e ha anche motori HTML e JavaScript incorporati incorporati ma ha un migliore supporto WebGL e HTML5 Canvas. È rilasciato sotto licenza BSD.
Questo probabilmente vale una risposta separata, ma si potrebbe anche guardare in XUL Runner, che è ciò che Firefox è essenzialmente costruito sopra. Puoi scrivere la tua interfaccia utente in XML, JS e CSS. C'è anche un'interfaccia C++ per i componenti. –