obsidian/笔记文件/2.笔记/C++和JavaScript交互传参注意事项.md

38 lines
1.1 KiB
Markdown
Raw Permalink Normal View History

2025-03-26 00:02:56 +08:00
#qt
转换参考
``` cpp
void PayDialog::PayCallBack()
{
Project* project = Core::instance().project();
QJsonObject simpleLoginData = project->SimplePayData();
QJsonDocument doc;
QJsonArray arr;
QJsonDocument valueDoc;
QJsonArray valueArr;
valueArr.push_back(simpleLoginData.value("pay_info"));
valueDoc.setArray(valueArr);
QString jsonValueStr = valueDoc.toJson();
simpleLoginData.remove("pay_info");
arr.push_back(simpleLoginData);
doc.setArray(arr);
QString jsonStr = doc.toJson();
QByteArray data = jsonStr.toStdString().c_str();
QString dataStr = QString(data).simplified().replace("[","").replace("]","");
std::string js_code = "window.orderDataCallBack('" + dataStr.toStdString() + "'," +jsonValueStr.toStdString() + ")";
// std::string js_code_payInfo = "window.orderDataCallBack(" + jsonValueStr.toStdString() + ");";
// txtOutput << QString::fromStdString(js_code);
// txtOutput << QString(js_code_payInfo.c_str());
// 使用 wkeRunJS 执行 JavaScript 代码
wkeRunJS(webView, js_code.c_str());
// wkeRunJS(webView, js_code_payInfo.c_str());
}
```