脱编程:如何扩展Javascript API在。
-
27-09-2019 - |
题
我是新建的,什么我想要做的是:
- 创建一个Linux的应用程序使用的脱框架。
- 这个应用程序显示一些网页的网络。
- 我想要延长JavaScript API访问的一些设备和装置为基础的数据,这意味着一些可控制设备的使用JavaScript在其.
但我怎么添加一些自定义功能/类其在脱?
解决方案
幸运的是,存在着一些文件,最后: http://doc.qt.io/qt-4.8/qtwebkit-bridge.html
其他提示
我已经做了一QWebKit项目,其中我建立之间的桥梁Javascript and C++编码。
实现这个我用的方法:
this->page()->mainFrame()->addToJavaScriptWindowObject( "god", this );
这可以让你执行方法的对象传递给addToJavaScriptWindowObject作为第二种参数,从Javascript,使用对象规定作为第一个参数。
这里有一个例子:
class Browser : public QWebView
{
Q_OBJECT
public:
Browser( QWidget* parent=0 )
{
connect( this->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(onJavaScriptWindowObjectCleared()) );
}
public slots:
void onJavaScriptWindowObjectCleared()
{
// QString script = "console.log('init!');";
// this->page()->mainFrame()->evaluateJavaScript( script );
}
void onChange()
{
qDebug() << "Browser::onChange()";
}
}
然后,从Javascript我可以这样做:
$('input:text').keydown( god.onChange );
所以每次我按一个关键输入框,上帝。菜单选择变化()是执行其执行浏览器::菜单选择变化()隙。
这种方式避免延伸JS api。
不隶属于 StackOverflow