2 Stimmen

Webcore in webkit gtk

In meinem Projekt (das auf WebKit-GTK basiert), möchte ich eine Klasse in WebCore aufrufen. Aber WebKit kapselt WebCore ein, sodass ich diese Funktionen nicht direkt aufrufen kann (ich habe dies durch Google erfahren, daher weiß ich nicht, ob es richtig ist). z.B.:

Frame* frame = m_pPage->focusController()->focusedOrMainFrame();
Document* focusedDocument = frame->document();
frame = frame->tree()->top();
Node* focusedNode = focusedDocument->focusedNode();

Diese Klassen und Funktionen sind in WebCore definiert, daher kann ich sie nicht direkt aufrufen. Ich möchte wissen, wie ich darauf zugreifen kann. WebKit modifizieren?

Ich brauche nur das WebCore-Modul, wie kann ich WebCore ohne WebKit installieren?

0 Stimmen

Es scheint nicht genügend Feedback für den WebCore-Absturz verfügbar zu sein. Wie beheben Sie es schließlich?

2voto

snyh Punkte 1135

Sie können versuchen, den WebKit-Quellcode herunterzuladen und zur letzten Zeile von "Source/WebKit/gtk/webkit/webkitwebview.cpp" gehen, um die Funktion "WebCore::Page* core(WebKitWebView* webView);" zu sehen, dies ist der Kern, um Webkit-Dinge in Webcore-Dinge umzuwandeln.

Sie müssen dem Compiler den Aufbau von "WebKitWebViewPrivate" bekannt geben, der in der Datei "webkitwebviewprivate.h" definiert ist. (oder Sie können Ihr eigenes WebKitWebViewPrivate definieren, um den Compiler zu überlisten. In diesem Stadium lassen Sie den Compiler nur den Offset des Feldes "corePage" kennen)

Aber das Schwierige ist, dass Sie die Klassen Frame, Node, Document und viele andere Klassen exportieren müssen.

Also ist das möglich, aber schwierig.


Wenn Sie wirklich nur Frame, Node verwenden wollen... Sie können den Webkit erstellen, und im build/.libs-Verzeichnis befindet sich eine libWebCore.a, die alles enthält, was Sie brauchen, außer den Header-Dateien.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X