我想将Bokeh应用程序与Electron连接起来。 Electron窗口已经显示了用Python 3编写的散景应用程序的localhost:5006
。现在我想使用电子的本机用户菜单来触发Bokeh应用程序的一些操作。有没有办法做到这一点?
我在this project中使用了一些变通方法来实现这一点。具体来说,我发送信号到iframe运行一些js事件并触发python方法。将来我希望bokeh能够允许一些RPC调用。获取功能的关键文件:
document.getElementById('bokeh_iframe').contentWindow.postMessage({
"signal": "call-python-promise",
"message_data": message
} , '*'); // to index.html, the click on the button is run there as well
一个电话示例here。您可以将这些调用放在电子菜单项中(在ipc渲染器侧)。
var call_params = {
'object': 'bokeh.loader',
'method': 'init_bokeh',
'args': {
'ts_state': $('body').data('ts_state'),
}
}
tools.call_promise(call_params).then((result) => {
self.run_on_ready();
});
button.click()
触发python方法(与按钮相关的回调)如你所见,这非常麻烦。如果您找到更好的方法,请告诉我。将来会创建一些调用python方法的方法,所有这些都会更简单。
注意:您可能需要检查何时加载散景图以重定向电子。检查这个question and answer