QWebChannel после того, как я зарегистрировал некоторые объекты, мне нужно зарегистрировать новый объект в Js, но он не может вызвать эти новые объекты cpp функциями
В некоторых случаях мне нужно зарегистрировать некоторые объекты в qwebchannel, а далее в приложении мне нужно зарегистрировать новый объект в qwebchannel. Дело в том, что он не показывает ошибки для этого нового объекта, но когда я пытаюсь вызвать С++ из этого нового объекта, ничего не происходит.
Я делаю что-то вроде:
Сначала зарегистрируйте два объекта:
this->mWebView->mViewChannel->registerObject("object1", this);
this->mWebView->mViewChannel->registerObject("object2", this);
а также
registerJsObject << R"(new QWebChannel(qt.webChannelTransport, function (channel) {)";
registerJsObject << R"window.object1 = channel.objects.object1";
registerJsObject << R"window.object2 = channel.objects.object2";
registerJsObject << R"(}))";
page->runJavaScript(registerJsObject.join("\n"));
И с этим на стороне Js я могу вызывать все функции от js до cpp с этими объектами. Но в какой-то момент мне нужно зарегистрировать новый объект, например:
this->mWebView->mViewChannel->registerObject("dialog", dialog);
а затем мне нужно снова создать экземпляр других объектов:
registerJsObject << R"(new QWebChannel(qt.webChannelTransport, function (channel) {)";
registerJsObject << R"window.object1 = channel.objects.object1";
registerJsObject << R"window.object2 = channel.objects.object2";
registerJsObject << R"window.dialog = channel.objects.dialog";
registerJsObject << R"(}))";
page->runJavaScript(registerJsObject.join("\n"));
Проблема в том, что я могу нормально использовать старые созданные объекты, но когда я пытаюсь вызвать новый объект, он не терпит неудачу, но на стороне Cpp ничего не происходит.