使用 QtWebkit 的 javascript 桥,我创建了一个类来将我的 web 框架中的数据与我的 Qt 代码的其余部分连接起来。它识别对象,但不识别它的任何方法。
//executed with main window constructor
void MainWindow::initJavascriptInterface(){
webInterfacer JSInterface;
QWebFrame *frame = ui->webView->page()->mainFrame();
frame->addToJavaScriptWindowObject("sender",&JSInterface);
}
该类只有一个名为 getInfo() 的公共插槽(我知道这个名字很烂,但它是用于测试的,我尝试过使用不同的函数名称以防发生冲突)。
网络接口.h
#ifndef WEBINTERFACER_H
#define WEBINTERFACER_H
#include <QObject>
class webInterfacer : public QObject
{
Q_OBJECT
public:
explicit webInterfacer();
~webInterfacer();
public slots:
void getInfo();
signals:
//signal to emit when getInfo is called
void openPopup(QString,QString);
};
#endif // WEBINTERFACER_H
我尝试在 getInfo 中使用不同的内容,即使是一个空函数,也无法识别。
在我的 HTML 标头(jQuery)中:
$(document).ready(function(){
if(window.sender){
alert("obj: " + typeof sender); //shows "obj: object"
alert("getInfo: " + typeof sender.getInfo); //shows "getInfo: undefined"
}
}