@@ -45,7 +45,6 @@ void CefRenderProcessHandlerImpl::OnWebKitInitialized(){
45
45
CefRegisterExtension("v8/app", app_code,m_v8Handler);
46
46
}
47
47
```
48
-
49
48
2 . 在CefV8Handler的子类的Execute方法里实现sendMessage和registerJavascriptFunction
50
49
```
51
50
// in CefV8HandlerImpl.h
@@ -71,7 +70,6 @@ typedef std::map<std::pair<std::string, int>,
71
70
CallbackMap callback_map_;
72
71
}
73
72
```
74
-
75
73
```
76
74
CefV8HandlerImpl::CefV8HandlerImpl()
77
75
{
@@ -129,21 +127,16 @@ bool CefV8HandlerImpl::Execute(const CefString& name //JavaScript调用的C++
129
127
return true;
130
128
}
131
129
```
132
-
133
130
3 . 在HTML的JavaScript里,通过上面注册的方法向Render进程注册一个回调函数。
134
131
```
135
132
// In JavaScript register the callback function.
136
133
app.setMessageCallback('binding_test', function(name, args) {
137
134
document.getElementById('result').value = "Response: "+args[0];
138
135
});
139
136
```
140
-
141
137
4 . Render进程发送异步进程间通信到Browser进程。
142
-
143
138
5 . Browser进程接收到进程间消息,并处理。
144
-
145
139
6 . Browser进程处理完毕后,发送一个异步进程间消息给Render进程,返回结果。
146
-
147
140
7 . Render进程接收到进程间消息,则调用最开始保存的JavaScript注册的回调函数处理之。
148
141
```
149
142
// Execute the registered JavaScript callback if any.
@@ -184,7 +177,6 @@ if (!callback_map_.empty()) {
184
177
}
185
178
}
186
179
```
187
-
188
180
8 . 在CefRenderProcessHandlerImpl::OnContextReleased()里释放JavaScript注册的回调函数以及其他V8资源。
189
181
```
190
182
void CefRenderProcessHandlerImpl::OnContextReleased(CefRefPtr<CefBrowser> browser,
0 commit comments