Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
bb6e6a05
energy
项目概览
energye
/
energy
通知
13
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
energy
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bb6e6a05
编写于
3月 14, 2023
作者:
yanghye
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
upgrade-dev v2.3.2
上级
8841c6bb
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
18 addition
and
12 deletion
+18
-12
cef/cef-application-callback.go
cef/cef-application-callback.go
+3
-3
cef/cef-ipc-render.go
cef/cef-ipc-render.go
+14
-8
example/dev-test/ipc-event/ipc-event.go
example/dev-test/ipc-event/ipc-event.go
+1
-1
未找到文件。
cef/cef-application-callback.go
浏览文件 @
bb6e6a05
...
...
@@ -31,9 +31,9 @@ func appMainRunCallback() {
// renderProcessMessageReceived 渲染进程消息 - 默认实现
func
renderProcessMessageReceived
(
browser
*
ICefBrowser
,
frame
*
ICefFrame
,
sourceProcess
consts
.
CefProcessId
,
message
*
ICefProcessMessage
)
(
result
bool
)
{
if
message
.
Name
()
==
internalProcessMessageIPCEmitReply
{
//接收回复消息
result
=
ipcRender
.
ipc
Emi
tMessageReply
(
browser
,
frame
,
sourceProcess
,
message
)
}
else
if
message
.
Name
()
==
internalProcessMessageIPCOn
{
result
=
ipcRender
.
ipc
JSExecuteGoEven
tMessageReply
(
browser
,
frame
,
sourceProcess
,
message
)
}
else
if
message
.
Name
()
==
internalProcessMessageIPCOn
{
// Go触发JS监听事件
result
=
ipcRender
.
ipcGoExecuteJSEvent
(
browser
,
frame
,
sourceProcess
,
message
)
}
return
}
...
...
cef/cef-ipc-render.go
浏览文件 @
bb6e6a05
...
...
@@ -48,10 +48,10 @@ func (m *ipcRenderProcess) makeCtx(context *ICefV8Context) {
func
(
m
*
ipcRenderProcess
)
makeIPC
(
context
*
ICefV8Context
)
{
// ipc emit
m
.
emitHandler
.
handler
=
V8HandlerRef
.
New
()
m
.
emitHandler
.
handler
.
Execute
(
m
.
ipc
EmitExecute
)
m
.
emitHandler
.
handler
.
Execute
(
m
.
ipc
JSExecuteGoEvent
)
// ipc on
m
.
onHandler
.
handler
=
V8HandlerRef
.
New
()
m
.
onHandler
.
handler
.
Execute
(
m
.
ipc
OnExecute
)
m
.
onHandler
.
handler
.
Execute
(
m
.
ipc
JSOnEvent
)
// ipc object
m
.
ipc
=
V8ValueRef
.
NewObject
(
nil
)
m
.
ipc
.
setValueByKey
(
internalEmit
,
V8ValueRef
.
newFunction
(
internalEmit
,
m
.
emitHandler
.
handler
),
consts
.
V8_PROPERTY_ATTRIBUTE_READONLY
)
...
...
@@ -60,8 +60,8 @@ func (m *ipcRenderProcess) makeIPC(context *ICefV8Context) {
context
.
Global
()
.
setValueByKey
(
internalIPCKey
,
m
.
ipc
,
consts
.
V8_PROPERTY_ATTRIBUTE_READONLY
)
}
// ipc
EmitExecute ipc.on 执行
func
(
m
*
ipcRenderProcess
)
ipc
OnExecute
(
name
string
,
object
*
ICefV8Value
,
arguments
*
TCefV8ValueArray
,
retVal
*
ResultV8Value
,
exception
*
ResultString
)
(
result
bool
)
{
// ipc
JSOnEvent JS ipc.on 监听事件
func
(
m
*
ipcRenderProcess
)
ipc
JSOnEvent
(
name
string
,
object
*
ICefV8Value
,
arguments
*
TCefV8ValueArray
,
retVal
*
ResultV8Value
,
exception
*
ResultString
)
(
result
bool
)
{
if
name
!=
internalOn
{
retVal
.
SetResult
(
V8ValueRef
.
NewBool
(
false
))
return
...
...
@@ -98,8 +98,14 @@ func (m *ipcRenderProcess) ipcOnExecute(name string, object *ICefV8Value, argume
return
}
// ipcEmitExecute ipc.emit 执行
func
(
m
*
ipcRenderProcess
)
ipcEmitExecute
(
name
string
,
object
*
ICefV8Value
,
arguments
*
TCefV8ValueArray
,
retVal
*
ResultV8Value
,
exception
*
ResultString
)
(
result
bool
)
{
// ipcGoExecuteJSEvent Go ipc.emit JS事件
func
(
m
*
ipcRenderProcess
)
ipcGoExecuteJSEvent
(
browser
*
ICefBrowser
,
frame
*
ICefFrame
,
sourceProcess
consts
.
CefProcessId
,
message
*
ICefProcessMessage
)
(
result
bool
)
{
return
true
}
// ipcJSExecuteGoEvent JS ipc.emit 执行Go事件
func
(
m
*
ipcRenderProcess
)
ipcJSExecuteGoEvent
(
name
string
,
object
*
ICefV8Value
,
arguments
*
TCefV8ValueArray
,
retVal
*
ResultV8Value
,
exception
*
ResultString
)
(
result
bool
)
{
var
(
emitName
*
ICefV8Value
//事件名
emitNameValue
string
//事件名
...
...
@@ -201,8 +207,8 @@ func (m *ipcRenderProcess) ipcEmitExecute(name string, object *ICefV8Value, argu
return
}
// ipc
EmitMessageReply 触发事件
回复
func
(
m
*
ipcRenderProcess
)
ipc
Emi
tMessageReply
(
browser
*
ICefBrowser
,
frame
*
ICefFrame
,
sourceProcess
consts
.
CefProcessId
,
message
*
ICefProcessMessage
)
(
result
bool
)
{
// ipc
JSExecuteGoEventMessageReply JS执行Go监听,Go的消息
回复
func
(
m
*
ipcRenderProcess
)
ipc
JSExecuteGoEven
tMessageReply
(
browser
*
ICefBrowser
,
frame
*
ICefFrame
,
sourceProcess
consts
.
CefProcessId
,
message
*
ICefProcessMessage
)
(
result
bool
)
{
result
=
true
messageId
:=
message
.
ArgumentList
()
.
GetInt
(
0
)
if
callback
:=
ipcRender
.
emitHandler
.
getCallback
(
messageId
);
callback
!=
nil
{
...
...
example/dev-test/ipc-event/ipc-event.go
浏览文件 @
bb6e6a05
...
...
@@ -44,7 +44,7 @@ func main() {
ipc
.
On
(
"testGoEmit"
,
func
(
context
ipc
.
IContext
)
{
fmt
.
Println
(
"testGoEmit"
,
context
.
BrowserId
(),
context
.
FrameId
())
//ipc.Emit("
", "aaa", "bbb")
ipc
.
Emit
(
"onTestName1
"
,
"aaa"
,
"bbb"
)
//ipc.EmitAndCallback("", func() {}, "aaaa")
})
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录