欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

cef write json

錢良釵2年前8瀏覽0評論

cef是一款開源的瀏覽器框架,可以在Windows、Linux和Mac OS X上使用。它的最新版本支持JavaScript和JSON。當我們需要向CEF應用程序寫入JSON時,我們可以使用以下代碼:

#include <string>#include <sstream>#include <fstream>#include <iostream>#include <cstdio>#include "include/cef_app.h"
#include "include/cef_client.h"
class CustomRequestContextHandler : public CefRequestContextHandler {
public:
CustomRequestContextHandler() {}
IMPLEMENT_REFCOUNTING(CustomRequestContextHandler);
};
class CustomApp : public CefApp,
public CefBrowserProcessHandler {
public:
CustomApp() {}
void OnContextInitialized() OVERRIDE {
CefRefPtr<CustomRequestContextHandler>handler = new CustomRequestContextHandler();
CefRequestContextSettings settings;
CefRefPtr<CefRequestContext>request_context = CefRequestContext::CreateContext(settings, handler.get());
CefBrowserSettings browser_settings;
std::string url = "https://example.com";
CefRefPtr<CefBrowser>browser = CefBrowserHost::CreateBrowserSync(
CefWindowInfo(),
browser_settings,
url,
CefBrowserHost::GetDefaultClient(),
NULL,
request_context);
}
IMPLEMENT_REFCOUNTING(CustomApp);
};
int main(int argc, char** argv) {
CefMainArgs main_args(argc, argv);
CefRefPtr<CustomApp>app(new CustomApp());
int exit_code = CefExecuteProcess(main_args, app.get(), NULL);
if (exit_code >= 0) {
// Child process has exited.
return exit_code;
}
CefSettings settings;
CefInitialize(main_args, settings, app.get(), NULL);
CefRunMessageLoop();
CefShutdown();
return 0;
}

以上代碼可以創建一個CEF應用程序,并在指定的URL上創建一個瀏覽器實例。現在,我們需要使用JSON寫入數據。我們可以使用以下代碼示例:

CefRefPtr<CefBrowser>browser = // get the browser instance
CefRefPtr<CefFrame>frame = browser->GetMainFrame();
// create a JSON object
CefRefPtr<CefV8Value>obj = CefV8Value::CreateObject(NULL);
// add some properties to the object
obj->SetValue("name", CefV8Value::CreateString("John"), V8_PROPERTY_ATTRIBUTE_NONE);
obj->SetValue("age", CefV8Value::CreateInt(32), V8_PROPERTY_ATTRIBUTE_NONE);
// convert the JSON object to string
CefRefPtr<CefV8Value>json_string = CefV8Value::CreateString(CefWriteJSON(obj, JSON_WRITER_DEFAULT));
// execute a JavaScript function in the browser
CefRefPtr<CefProcessMessage>message = CefProcessMessage::Create("execute_javascript");
message->GetArgumentList().SetString(0, json_string->GetStringValue());
frame->SendProcessMessage(PID_RENDERER, message);

以上代碼會創建一個JSON對象,然后將該對象轉換為字符串。接下來,它會在瀏覽器中執行一個JavaScript函數,并將JSON字符串作為參數傳遞給該函數。這樣,我們就向CEF應用程序成功寫入了JSON數據。