This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Doric/doric-Qt/doric/plugin/DoricNetworkPlugin.cpp

30 lines
1.0 KiB
C++
Raw Normal View History

2021-04-25 16:44:39 +08:00
#include "DoricNetworkPlugin.h"
2021-04-26 10:21:38 +08:00
#include "engine/DoricPromise.h"
2021-04-25 20:40:49 +08:00
#include "utils/DoricNetworkService.h"
2021-04-25 16:44:39 +08:00
2021-04-25 20:40:49 +08:00
#include <QCoreApplication>
2021-04-25 16:44:39 +08:00
#include <QJsonDocument>
#include <QJsonObject>
void DoricNetworkPlugin::request(QString jsValueString, QString callbackId) {
QJsonDocument document = QJsonDocument::fromJson(jsValueString.toUtf8());
QJsonValue jsValue = document.object();
2021-04-26 10:21:38 +08:00
DoricNetworkService::getInstance()->request(
jsValue, qApp,
[this, callbackId](int code, QList<QByteArray> headers, QByteArray data) {
getContext()->getDriver()->asyncCall(
[this, callbackId, code, headers, data] {
QMap<QString, QVariant> map;
map.insert("status", code);
map.insert("headers", QVariant::fromValue(headers));
map.insert("data", QString(data));
QVariantList args;
args.append(map);
DoricPromise::resolve(getContext(), callbackId, args);
},
DoricThreadMode::JS);
});
2021-04-25 16:44:39 +08:00
}