如何在Webkit平台上将匿名函数作为参数从javascript传递到C++
例:
window.test('helloworld', function(){
alert('ye');
});
“测试”是将C++注入(inject)到网络中以获取javascript,并且javascript将两个参数传递给C++
我想让C++在异步执行C++时调用第二个匿名函数参数吗?
还是C++只是接收类型为String的参数?
最佳答案
...
interface DOMWindow{
...
[Custom] void test();
...
};
...
...
v8::Handle<v8::Value> V8DOMWindow::testCallback(const v8::Arguments& args){
v8::Local<v8::String> str;
v8::Local<v8::Function> jsFn;
if(!args[0]->IsString() || !args[1]->IsFunction())
return v8::Undefined();
str = args[0]->ToString();
jsFn = v8::Local<v8::Function>::Cast(args[1]);
v8::Persistent<v8::Function> pFn = v8::Persistent<v8::Function>::New(jsFn);
pFn->Call(v8::Context::GetCurrent()->Global(), 0, NULL); // Execute the passed in js function
return v8::Undefined();
}