直接使用 golang 版 Qt 中的 QWebengineView 的 RunJavaScript4
方法不能直接调用到 React 方法
按照以下步骤可以解决问题。
- 在 js 文件里, 需要把 React 的类实例暴露给 window ,代码如下:
import xxx;
//...
window.updateValue = function(url) {
alert("call ok !");
// if(window.callback != undefined) {
// window.callback.updateValue(url);
// }
};
window.setCallback = function(callback) {
window.callback = callback;
}
//...
export default class MyFeedback extends React.Component {
//...
// key step
// in react life cycle `componentWillMount` set `this` :
componentWillMount() {
window.setCallback(this);
}
//...
}
- 在 go 文件里, 我们可以这样调用方法 :
ap.WebView.Page().RunJavaScript4("window.updateValue('hello')")
编译运行项目 ,就可以看到输出 call ok!
参考链接 : https://blog.csdn.net/ZHOUYONGXYZ/article/details/82760929