#include #include #include #include #include "../DoricContextManager.h" #include "DoricBridgeExtension.h" DoricBridgeExtension::DoricBridgeExtension(QObject *parent) : QObject(parent) {} void DoricBridgeExtension::callNative(QString contextId, QString module, QString methodName, QString callbackId, QString argument) { qDebug() << "contextId: " + contextId << "module: " + module << "methodName: " + methodName << "callbackId: " + callbackId << "jsValue: " + argument; DoricContext *context = DoricContextManager::getInstance()->getContext(contextId); if (context == nullptr) { qCritical() << "cannot find context: " + contextId; return; } bool classRegistered = context->getDriver()->getRegistry()->acquirePluginInfo(module); if (classRegistered) { QObject *plugin = context->obtainPlugin(module); QMetaObject::invokeMethod(plugin, methodName.toUtf8(), Qt::DirectConnection, QGenericReturnArgument(), Q_ARG(QString, argument), Q_ARG(QString, callbackId)); } }