0
使用QtWebkit的javascript橋樑,我創建了一個類來將我的web框架中的數據與其餘的Qt代碼進行接口。它承認對象,但沒有其方法。QtWebkit javascript bridge,無法訪問Qt對象方法
mainwindow.cpp代碼:
#include "app.h"
MainWindow::MainWindow(QWidget *parent) : QWebView(parent)
{
happ = new app(this);
m_network = new QNetworkAccessManager(this);
page()->setNetworkAccessManager(m_network);
QFile file("E://qt//test.happ//index.html");
file.open(QIODevice::ReadOnly | QIODevice::Text);
QTextStream in(&file);
QString htmlContent = in.readAll();
addJSObject();
QObject::connect(page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()),this, SLOT(addJSObject()));
setHtml(htmlContent);
}
void MainWindow::addJSObject()
{
page()->mainFrame()->addToJavaScriptWindowObject(QString("happ"), happ);
};
app.h代碼:
#include <QObject>
class app:public QObject
{
public:
app(QObject *parent);
public slots:
void os_foo();
signals:
void win_bar();
};
的javascript:
function a(){
if(window.happ){
alert("obj: " + typeof happ); //shows "obj: object"
alert("os_foo: " + typeof happ.os_foo); //shows "os_foo: undefined"
}
}
JavaScript不能調用應用程序類的功能,你幫助我謝謝