如何在PPAPI中将变量从JavaScript传递到c++
How do you pass a variable from JavaScript to C++ in PPAPI?
我正在看某人的代码(不可接触),他们已经建立了一个websocket客户端,与服务器对话并运行一些c++代码。这是为新的Chrome PPAPI。我可以从客户端传递变量到服务器,但我不确定如何将它们传递到c++端,以改变代码中发生的事情?
因此,如果客户端传递1,c++代码做一件事,如果传递2,它做另一件事。我只是看不出它是怎么做到的。
似乎启动c++代码运行的JavaScript是:
function onStartTest(e)
{
console.log('Start Test');
var hostname = document.getElementById('hostname').value;
var message = 'start:'+hostname;
common.logMessage(message);
common.naclModule.postMessage(message);
e.preventDefault();
return false;
}
我已经看了几个例子,但没有用。
所有来自JavaScript的异步消息都在HandleMessage函数中处理,该函数在pp::Instance:
中定义。class MyInstance : public pp::Instance {
...
virtual void HandleMessage(const pp::Var& message) {
...
}
};
在您的示例中,您正在发送一个字符串值。要提取它,可以使用pp::Var::AsString方法:
virtual void HandleMessage(const pp::Var& message) {
if (message.is_string()) {
std::string str_message = message.AsString();
...
}
}
如果你只是想传递数字,你也可以这样做:
virtual void HandleMessage(const pp::Var& message) {
if (message.is_int()) {
int32_t int_message = message.AsInt();
switch (int_message) {
case 1: ...
case 2: ...
}
}
}
查看这里的文档以获取更多信息。你可以发送arraybuffer,甚至任意对象
相关文章:
- 如何在本地机器上运行c++和javascript客户端代码(hackerbank风格)
- 如何将C++闭包与变量参数同时重用——类似于JavaScript
- 嘿,我正在尝试将此c ++转换为javascript,但有些东西不起作用
- C++中的 JavaScript 样式闭包
- OpenCV(C++)处理来自JavaScript / Web Assembly的图像数据
- 在C++中嵌入 Mozilla 的 JavaScript 引擎
- Javascript 找不到使用 emscripten 编译的导出 WASM 函数
- 在Javascript和C++中计算MD5哈希的不同结果
- 将Wiimote MAC地址转换为PIN码,从C++转换为Python或Javascript
- 如何使用EM_JS从带有参数的C++调用javascript方法
- JavaScript 中的一等函数和 C++ 中的函数声明
- 在 v8 JavaScript 中重复调用C++是否有巨大的开销?
- 在QtWebEngine中捕获JavaScript事件
- JavaScript箭头函数:我们能否像C ++ lambdas一样捕获值
- 我可以使用谷歌 v8 在回调函数中获取 JavaScript 函数C++源文本吗?
- 如何像在javascript中一样"push" c ++映射
- 如何读取 Javascript 文件
- 如何在 C++ 中从 V8 调用 Javascript 函数
- 在 c++ 中是否有像 javascript 中那样"includes()"的方法
- 有没有一种方法可以将数据从javascript发送到exe文件