obsidian/笔记文件/2.笔记/C++和JavaScript交互传参注意事项.md
2025-03-26 00:02:56 +08:00

1.1 KiB

#qt

转换参考

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());
}