Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
3118b91d
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,发现更多精彩内容 >>
提交
3118b91d
编写于
3月 21, 2023
作者:
yanghye
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
upgrade-dev v2.3.19
上级
8b16a8c6
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
112 addition
and
30 deletion
+112
-30
cef/cef-frame.go
cef/cef-frame.go
+82
-10
cef/cef-ipc-render.go
cef/cef-ipc-render.go
+26
-19
example/dev-test/ipc-event/ipc-event.go
example/dev-test/ipc-event/ipc-event.go
+2
-0
example/dev-test/ipc-event/resources/ipc-event.html
example/dev-test/ipc-event/resources/ipc-event.html
+2
-1
未找到文件。
cef/cef-frame.go
浏览文件 @
3118b91d
...
@@ -22,93 +22,141 @@ import (
...
@@ -22,93 +22,141 @@ import (
// Instance 实例
// Instance 实例
func
(
m
*
ICefFrame
)
Instance
()
uintptr
{
func
(
m
*
ICefFrame
)
Instance
()
uintptr
{
if
m
==
nil
{
return
0
}
return
uintptr
(
m
.
instance
)
return
uintptr
(
m
.
instance
)
}
}
// IsValid 该Frame是否有效
func
(
m
*
ICefFrame
)
IsValid
()
bool
{
if
m
==
nil
||
m
.
instance
==
nil
{
return
false
}
r1
,
_
,
_
:=
imports
.
Proc
(
internale_CEFFrame_IsValid
)
.
Call
(
m
.
Instance
())
return
api
.
GoBool
(
r1
)
}
// Undo 撤销操作
// Undo 撤销操作
func
(
m
*
ICefFrame
)
Undo
()
{
func
(
m
*
ICefFrame
)
Undo
()
{
if
!
m
.
IsValid
()
{
return
}
imports
.
Proc
(
internale_CEFFrame_Undo
)
.
Call
(
m
.
Instance
())
imports
.
Proc
(
internale_CEFFrame_Undo
)
.
Call
(
m
.
Instance
())
}
}
// Redo 恢复
// Redo 恢复
func
(
m
*
ICefFrame
)
Redo
()
{
func
(
m
*
ICefFrame
)
Redo
()
{
if
!
m
.
IsValid
()
{
return
}
imports
.
Proc
(
internale_CEFFrame_Redo
)
.
Call
(
m
.
Instance
())
imports
.
Proc
(
internale_CEFFrame_Redo
)
.
Call
(
m
.
Instance
())
}
}
// Cut 剪切
// Cut 剪切
func
(
m
*
ICefFrame
)
Cut
()
{
func
(
m
*
ICefFrame
)
Cut
()
{
if
!
m
.
IsValid
()
{
return
}
imports
.
Proc
(
internale_CEFFrame_Cut
)
.
Call
(
m
.
Instance
())
imports
.
Proc
(
internale_CEFFrame_Cut
)
.
Call
(
m
.
Instance
())
}
}
// Copy 复制
// Copy 复制
func
(
m
*
ICefFrame
)
Copy
()
{
func
(
m
*
ICefFrame
)
Copy
()
{
if
!
m
.
IsValid
()
{
return
}
imports
.
Proc
(
internale_CEFFrame_Copy
)
.
Call
(
m
.
Instance
())
imports
.
Proc
(
internale_CEFFrame_Copy
)
.
Call
(
m
.
Instance
())
}
}
// Paste 粘贴
// Paste 粘贴
func
(
m
*
ICefFrame
)
Paste
()
{
func
(
m
*
ICefFrame
)
Paste
()
{
if
!
m
.
IsValid
()
{
return
}
imports
.
Proc
(
internale_CEFFrame_Paste
)
.
Call
(
m
.
Instance
())
imports
.
Proc
(
internale_CEFFrame_Paste
)
.
Call
(
m
.
Instance
())
}
}
// Del 删除
// Del 删除
func
(
m
*
ICefFrame
)
Del
()
{
func
(
m
*
ICefFrame
)
Del
()
{
if
!
m
.
IsValid
()
{
return
}
imports
.
Proc
(
internale_CEFFrame_Del
)
.
Call
(
m
.
Instance
())
imports
.
Proc
(
internale_CEFFrame_Del
)
.
Call
(
m
.
Instance
())
}
}
// SelectAll 选择所有
// SelectAll 选择所有
func
(
m
*
ICefFrame
)
SelectAll
()
{
func
(
m
*
ICefFrame
)
SelectAll
()
{
if
!
m
.
IsValid
()
{
return
}
imports
.
Proc
(
internale_CEFFrame_SelectAll
)
.
Call
(
m
.
Instance
())
imports
.
Proc
(
internale_CEFFrame_SelectAll
)
.
Call
(
m
.
Instance
())
}
}
// ViewSource 显示源码
// ViewSource 显示源码
func
(
m
*
ICefFrame
)
ViewSource
()
{
func
(
m
*
ICefFrame
)
ViewSource
()
{
if
!
m
.
IsValid
()
{
return
}
imports
.
Proc
(
internale_CEFFrame_ViewSource
)
.
Call
(
m
.
Instance
())
imports
.
Proc
(
internale_CEFFrame_ViewSource
)
.
Call
(
m
.
Instance
())
}
}
// LoadUrl 加载URL
// LoadUrl 加载URL
func
(
m
*
ICefFrame
)
LoadUrl
(
url
string
)
{
func
(
m
*
ICefFrame
)
LoadUrl
(
url
string
)
{
if
!
m
.
IsValid
()
{
return
}
imports
.
Proc
(
internale_CEFFrame_LoadUrl
)
.
Call
(
m
.
Instance
(),
api
.
PascalStr
(
url
))
imports
.
Proc
(
internale_CEFFrame_LoadUrl
)
.
Call
(
m
.
Instance
(),
api
.
PascalStr
(
url
))
}
}
// ExecuteJavaScript 执行JS
// ExecuteJavaScript 执行JS
func
(
m
*
ICefFrame
)
ExecuteJavaScript
(
code
,
scriptUrl
string
,
startLine
int32
)
{
func
(
m
*
ICefFrame
)
ExecuteJavaScript
(
code
,
scriptUrl
string
,
startLine
int32
)
{
imports
.
Proc
(
internale_CEFFrame_ExecuteJavaScript
)
.
Call
(
m
.
Instance
(),
api
.
PascalStr
(
code
),
api
.
PascalStr
(
scriptUrl
),
uintptr
(
startLine
))
if
!
m
.
IsValid
()
{
}
return
// IsValid 该Frame是否有效
func
(
m
*
ICefFrame
)
IsValid
()
bool
{
if
m
.
instance
==
nil
{
return
false
}
}
r1
,
_
,
_
:=
imports
.
Proc
(
internale_CEFFrame_IsValid
)
.
Call
(
m
.
Instance
())
imports
.
Proc
(
internale_CEFFrame_ExecuteJavaScript
)
.
Call
(
m
.
Instance
(),
api
.
PascalStr
(
code
),
api
.
PascalStr
(
scriptUrl
),
uintptr
(
startLine
))
return
api
.
GoBool
(
r1
)
}
}
// IsMain 是否为主Frame
// IsMain 是否为主Frame
func
(
m
*
ICefFrame
)
IsMain
()
bool
{
func
(
m
*
ICefFrame
)
IsMain
()
bool
{
if
!
m
.
IsValid
()
{
return
false
}
r1
,
_
,
_
:=
imports
.
Proc
(
internale_CEFFrame_IsMain
)
.
Call
(
m
.
Instance
())
r1
,
_
,
_
:=
imports
.
Proc
(
internale_CEFFrame_IsMain
)
.
Call
(
m
.
Instance
())
return
api
.
GoBool
(
r1
)
return
api
.
GoBool
(
r1
)
}
}
// IsFocused 是否已获取焦点
// IsFocused 是否已获取焦点
func
(
m
*
ICefFrame
)
IsFocused
()
bool
{
func
(
m
*
ICefFrame
)
IsFocused
()
bool
{
if
!
m
.
IsValid
()
{
return
false
}
r1
,
_
,
_
:=
imports
.
Proc
(
internale_CEFFrame_IsFocused
)
.
Call
(
m
.
Instance
())
r1
,
_
,
_
:=
imports
.
Proc
(
internale_CEFFrame_IsFocused
)
.
Call
(
m
.
Instance
())
return
api
.
GoBool
(
r1
)
return
api
.
GoBool
(
r1
)
}
}
// SendProcessMessage 发送进程消息
// SendProcessMessage 发送进程消息
func
(
m
*
ICefFrame
)
SendProcessMessage
(
targetProcess
CefProcessId
,
message
*
ICefProcessMessage
)
{
func
(
m
*
ICefFrame
)
SendProcessMessage
(
targetProcess
CefProcessId
,
message
*
ICefProcessMessage
)
{
if
!
m
.
IsValid
()
{
return
}
imports
.
Proc
(
internale_CEFFrame_SendProcessMessage
)
.
Call
(
m
.
Instance
(),
targetProcess
.
ToPtr
(),
message
.
Instance
())
imports
.
Proc
(
internale_CEFFrame_SendProcessMessage
)
.
Call
(
m
.
Instance
(),
targetProcess
.
ToPtr
(),
message
.
Instance
())
message
.
Free
()
message
.
Free
()
}
}
// SendProcessMessageForJSONBytes 发送进程消息
// SendProcessMessageForJSONBytes 发送进程消息
func
(
m
*
ICefFrame
)
SendProcessMessageForJSONBytes
(
messageName
string
,
targetProcess
CefProcessId
,
data
[]
byte
)
{
func
(
m
*
ICefFrame
)
SendProcessMessageForJSONBytes
(
messageName
string
,
targetProcess
CefProcessId
,
data
[]
byte
)
{
if
!
m
.
IsValid
()
{
return
}
imports
.
Proc
(
internale_CEFFrame_SendProcessMessageForJSONBytes
)
.
Call
(
m
.
Instance
(),
api
.
PascalStr
(
messageName
),
targetProcess
.
ToPtr
(),
uintptr
(
unsafe
.
Pointer
(
&
data
[
0
])),
uintptr
(
uint32
(
len
(
data
))))
imports
.
Proc
(
internale_CEFFrame_SendProcessMessageForJSONBytes
)
.
Call
(
m
.
Instance
(),
api
.
PascalStr
(
messageName
),
targetProcess
.
ToPtr
(),
uintptr
(
unsafe
.
Pointer
(
&
data
[
0
])),
uintptr
(
uint32
(
len
(
data
))))
}
}
// SendProcessMessageForV8Value 发送进程消息
// SendProcessMessageForV8Value 发送进程消息
func
(
m
*
ICefFrame
)
SendProcessMessageForV8Value
(
messageName
string
,
targetProcess
CefProcessId
,
arguments
*
ICefV8Value
)
{
func
(
m
*
ICefFrame
)
SendProcessMessageForV8Value
(
messageName
string
,
targetProcess
CefProcessId
,
arguments
*
ICefV8Value
)
{
if
!
m
.
IsValid
()
{
return
}
imports
.
Proc
(
internale_CEFFrame_SendProcessMessageForV8Value
)
.
Call
(
m
.
Instance
(),
api
.
PascalStr
(
messageName
),
targetProcess
.
ToPtr
(),
arguments
.
Instance
())
imports
.
Proc
(
internale_CEFFrame_SendProcessMessageForV8Value
)
.
Call
(
m
.
Instance
(),
api
.
PascalStr
(
messageName
),
targetProcess
.
ToPtr
(),
arguments
.
Instance
())
}
}
...
@@ -116,6 +164,9 @@ func (m *ICefFrame) SendProcessMessageForV8Value(messageName string, targetProce
...
@@ -116,6 +164,9 @@ func (m *ICefFrame) SendProcessMessageForV8Value(messageName string, targetProce
//
//
// messageId != 0 是带有回调函数消息
// messageId != 0 是带有回调函数消息
func
(
m
*
ICefFrame
)
EmitRender
(
messageId
int32
,
eventName
string
,
target
ipc
.
ITarget
,
data
...
any
)
{
func
(
m
*
ICefFrame
)
EmitRender
(
messageId
int32
,
eventName
string
,
target
ipc
.
ITarget
,
data
...
any
)
{
if
!
m
.
IsValid
()
{
return
}
message
:=
json
.
NewJSONObject
(
nil
)
message
:=
json
.
NewJSONObject
(
nil
)
message
.
Set
(
ipc_id
,
messageId
)
message
.
Set
(
ipc_id
,
messageId
)
message
.
Set
(
ipc_event
,
eventName
)
message
.
Set
(
ipc_event
,
eventName
)
...
@@ -138,47 +189,68 @@ func (m *ICefFrame) EmitRender(messageId int32, eventName string, target ipc.ITa
...
@@ -138,47 +189,68 @@ func (m *ICefFrame) EmitRender(messageId int32, eventName string, target ipc.ITa
}
}
func
(
m
*
ICefFrame
)
LoadRequest
(
request
*
ICefRequest
)
{
func
(
m
*
ICefFrame
)
LoadRequest
(
request
*
ICefRequest
)
{
if
m
==
nil
||
request
==
nil
{
if
!
m
.
IsValid
()
||
request
==
nil
{
return
return
}
}
imports
.
Proc
(
internale_CEFFrame_LoadRequest
)
.
Call
(
m
.
Instance
(),
request
.
Instance
())
imports
.
Proc
(
internale_CEFFrame_LoadRequest
)
.
Call
(
m
.
Instance
(),
request
.
Instance
())
}
}
func
(
m
*
ICefFrame
)
Browser
()
*
ICefBrowser
{
func
(
m
*
ICefFrame
)
Browser
()
*
ICefBrowser
{
if
!
m
.
IsValid
()
{
return
nil
}
var
result
uintptr
var
result
uintptr
imports
.
Proc
(
internale_CEFFrame_Browser
)
.
Call
(
m
.
Instance
(),
uintptr
(
unsafe
.
Pointer
(
&
result
)))
imports
.
Proc
(
internale_CEFFrame_Browser
)
.
Call
(
m
.
Instance
(),
uintptr
(
unsafe
.
Pointer
(
&
result
)))
return
&
ICefBrowser
{
instance
:
unsafe
.
Pointer
(
result
)}
return
&
ICefBrowser
{
instance
:
unsafe
.
Pointer
(
result
)}
}
}
func
(
m
*
ICefFrame
)
V8Context
()
*
ICefV8Context
{
func
(
m
*
ICefFrame
)
V8Context
()
*
ICefV8Context
{
if
!
m
.
IsValid
()
{
return
nil
}
var
result
uintptr
var
result
uintptr
imports
.
Proc
(
internale_CEFFrame_GetV8Context
)
.
Call
(
m
.
Instance
(),
uintptr
(
unsafe
.
Pointer
(
&
result
)))
imports
.
Proc
(
internale_CEFFrame_GetV8Context
)
.
Call
(
m
.
Instance
(),
uintptr
(
unsafe
.
Pointer
(
&
result
)))
return
&
ICefV8Context
{
instance
:
unsafe
.
Pointer
(
result
)}
return
&
ICefV8Context
{
instance
:
unsafe
.
Pointer
(
result
)}
}
}
func
(
m
*
ICefFrame
)
Identifier
()
int64
{
func
(
m
*
ICefFrame
)
Identifier
()
int64
{
if
!
m
.
IsValid
()
{
return
0
}
var
result
uintptr
var
result
uintptr
imports
.
Proc
(
internale_CEFFrame_Identifier
)
.
Call
(
m
.
Instance
(),
uintptr
(
unsafe
.
Pointer
(
&
result
)))
imports
.
Proc
(
internale_CEFFrame_Identifier
)
.
Call
(
m
.
Instance
(),
uintptr
(
unsafe
.
Pointer
(
&
result
)))
return
int64
(
result
)
return
int64
(
result
)
}
}
func
(
m
*
ICefFrame
)
Name
()
string
{
func
(
m
*
ICefFrame
)
Name
()
string
{
if
!
m
.
IsValid
()
{
return
""
}
r1
,
_
,
_
:=
imports
.
Proc
(
internale_CEFFrame_Name
)
.
Call
(
m
.
Instance
())
r1
,
_
,
_
:=
imports
.
Proc
(
internale_CEFFrame_Name
)
.
Call
(
m
.
Instance
())
return
api
.
GoStr
(
r1
)
return
api
.
GoStr
(
r1
)
}
}
func
(
m
*
ICefFrame
)
Url
()
string
{
func
(
m
*
ICefFrame
)
Url
()
string
{
if
!
m
.
IsValid
()
{
return
""
}
r1
,
_
,
_
:=
imports
.
Proc
(
internale_CEFFrame_Url
)
.
Call
(
m
.
Instance
())
r1
,
_
,
_
:=
imports
.
Proc
(
internale_CEFFrame_Url
)
.
Call
(
m
.
Instance
())
return
api
.
GoStr
(
r1
)
return
api
.
GoStr
(
r1
)
}
}
func
(
m
*
ICefFrame
)
Parent
()
*
ICefFrame
{
func
(
m
*
ICefFrame
)
Parent
()
*
ICefFrame
{
if
!
m
.
IsValid
()
{
return
nil
}
var
result
uintptr
var
result
uintptr
imports
.
Proc
(
internale_CEFFrame_Parent
)
.
Call
(
m
.
Instance
(),
uintptr
(
unsafe
.
Pointer
(
&
result
)))
imports
.
Proc
(
internale_CEFFrame_Parent
)
.
Call
(
m
.
Instance
(),
uintptr
(
unsafe
.
Pointer
(
&
result
)))
return
&
ICefFrame
{
instance
:
unsafe
.
Pointer
(
result
)}
return
&
ICefFrame
{
instance
:
unsafe
.
Pointer
(
result
)}
}
}
func
(
m
*
ICefFrame
)
Free
()
{
func
(
m
*
ICefFrame
)
Free
()
{
if
!
m
.
IsValid
()
{
return
}
if
m
.
instance
!=
nil
{
if
m
.
instance
!=
nil
{
m
.
base
.
Free
(
m
.
Instance
())
m
.
base
.
Free
(
m
.
Instance
())
m
.
instance
=
nil
m
.
instance
=
nil
...
...
cef/cef-ipc-render.go
浏览文件 @
3118b91d
...
@@ -33,6 +33,7 @@ type ipcRenderProcess struct {
...
@@ -33,6 +33,7 @@ type ipcRenderProcess struct {
}
}
func
(
m
*
ipcRenderProcess
)
clear
()
{
func
(
m
*
ipcRenderProcess
)
clear
()
{
fmt
.
Println
(
m
.
bind
,
m
.
ipcObject
,
m
.
v8Context
)
if
m
.
bind
!=
nil
{
if
m
.
bind
!=
nil
{
m
.
bind
.
Free
()
m
.
bind
.
Free
()
m
.
bind
=
nil
m
.
bind
=
nil
...
@@ -44,6 +45,10 @@ func (m *ipcRenderProcess) clear() {
...
@@ -44,6 +45,10 @@ func (m *ipcRenderProcess) clear() {
//if m.onHandler != nil {
//if m.onHandler != nil {
// m.onHandler.clear()
// m.onHandler.clear()
//}
//}
if
m
.
v8Context
!=
nil
{
m
.
v8Context
.
Free
()
m
.
v8Context
=
nil
}
}
}
func
(
m
*
ipcRenderProcess
)
ipcChannelRender
(
browser
*
ICefBrowser
,
frame
*
ICefFrame
)
{
func
(
m
*
ipcRenderProcess
)
ipcChannelRender
(
browser
*
ICefBrowser
,
frame
*
ICefFrame
)
{
...
@@ -132,11 +137,13 @@ func (m *ipcRenderProcess) ipcGoExecuteJSEvent(browser *ICefBrowser, frame *ICef
...
@@ -132,11 +137,13 @@ func (m *ipcRenderProcess) ipcGoExecuteJSEvent(browser *ICefBrowser, frame *ICef
if
argument
!=
nil
{
if
argument
!=
nil
{
argument
.
Free
()
argument
.
Free
()
}
}
if
argumentList
!=
nil
{
argumentList
.
Free
()
}
}()
}()
if
callback
:=
ipcRender
.
onHandler
.
getCallback
(
emitName
);
callback
!=
nil
{
if
callback
:=
ipcRender
.
onHandler
.
getCallback
(
emitName
);
callback
!=
nil
{
var
callbackArgsBytes
[]
byte
var
callbackArgsBytes
[]
byte
if
m
.
v8Context
.
Enter
()
{
if
m
.
v8Context
.
Enter
()
{
if
m
.
v8Context
.
Enter
()
{
var
ret
*
ICefV8Value
var
ret
*
ICefV8Value
var
argsArray
*
TCefV8ValueArray
var
argsArray
*
TCefV8ValueArray
...
@@ -155,8 +162,6 @@ func (m *ipcRenderProcess) ipcGoExecuteJSEvent(browser *ICefBrowser, frame *ICef
...
@@ -155,8 +162,6 @@ func (m *ipcRenderProcess) ipcGoExecuteJSEvent(browser *ICefBrowser, frame *ICef
}
}
m
.
v8Context
.
Exit
()
m
.
v8Context
.
Exit
()
}
}
argumentList
.
Free
()
}
if
messageId
!=
0
{
//callback func
if
messageId
!=
0
{
//callback func
callbackMessage
:=
json
.
NewJSONObject
(
nil
)
callbackMessage
:=
json
.
NewJSONObject
(
nil
)
callbackMessage
.
Set
(
ipc_id
,
messageId
)
callbackMessage
.
Set
(
ipc_id
,
messageId
)
...
@@ -165,8 +170,10 @@ func (m *ipcRenderProcess) ipcGoExecuteJSEvent(browser *ICefBrowser, frame *ICef
...
@@ -165,8 +170,10 @@ func (m *ipcRenderProcess) ipcGoExecuteJSEvent(browser *ICefBrowser, frame *ICef
}
else
{
}
else
{
callbackMessage
.
Set
(
ipc_argumentList
,
nil
)
callbackMessage
.
Set
(
ipc_argumentList
,
nil
)
}
}
if
m
.
v8Context
.
Frame
()
!=
nil
{
m
.
v8Context
.
Frame
()
.
SendProcessMessageForJSONBytes
(
internalIPCGoExecuteJSEventReplay
,
consts
.
PID_BROWSER
,
callbackMessage
.
Bytes
())
m
.
v8Context
.
Frame
()
.
SendProcessMessageForJSONBytes
(
internalIPCGoExecuteJSEventReplay
,
consts
.
PID_BROWSER
,
callbackMessage
.
Bytes
())
}
}
}
result
=
true
result
=
true
}
}
return
return
...
...
example/dev-test/ipc-event/ipc-event.go
浏览文件 @
3118b91d
...
@@ -5,6 +5,7 @@ import (
...
@@ -5,6 +5,7 @@ import (
"fmt"
"fmt"
"github.com/energye/energy/cef"
"github.com/energye/energy/cef"
"github.com/energye/energy/common/assetserve"
"github.com/energye/energy/common/assetserve"
"github.com/energye/energy/consts"
"github.com/energye/energy/example/dev-test/ipc-event/src"
"github.com/energye/energy/example/dev-test/ipc-event/src"
"github.com/energye/energy/ipc"
"github.com/energye/energy/ipc"
"github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl"
...
@@ -26,6 +27,7 @@ func main() {
...
@@ -26,6 +27,7 @@ func main() {
cef
.
GlobalInit
(
nil
,
&
resources
)
cef
.
GlobalInit
(
nil
,
&
resources
)
//创建应用
//创建应用
cefApp
=
cef
.
NewApplication
()
cefApp
=
cef
.
NewApplication
()
cefApp
.
SetLogSeverity
(
consts
.
LOGSEVERITY_DEBUG
)
//cefApp.SetSingleProcess(true)
//cefApp.SetSingleProcess(true)
//指定一个URL地址,或本地html文件目录
//指定一个URL地址,或本地html文件目录
cef
.
BrowserWindow
.
Config
.
Url
=
"http://localhost:22022/ipc-event.html"
cef
.
BrowserWindow
.
Config
.
Url
=
"http://localhost:22022/ipc-event.html"
...
...
example/dev-test/ipc-event/resources/ipc-event.html
浏览文件 @
3118b91d
...
@@ -163,7 +163,7 @@
...
@@ -163,7 +163,7 @@
msg
(
"
R8:
"
,
r8
,
JSON
.
stringify
(
r8
));
msg
(
"
R8:
"
,
r8
,
JSON
.
stringify
(
r8
));
msg
(
"
R9:
"
,
r9
,
JSON
.
stringify
(
r9
));
msg
(
"
R9:
"
,
r9
,
JSON
.
stringify
(
r9
));
msg
(
"
R10:
"
,
r10
,
JSON
.
stringify
(
r10
));
msg
(
"
R10:
"
,
r10
,
JSON
.
stringify
(
r10
));
return
[
"
返回值
"
,
onTestName2Idx
,
2222.22
,
true
]
return
[
"
返回值
"
+
onTestName2Idx
,
onTestName2Idx
,
2222.22
+
onTestName2Idx
,
onTestName2Idx
%
2
===
0
]
});
});
let
tgesi
=
null
let
tgesi
=
null
...
@@ -217,6 +217,7 @@
...
@@ -217,6 +217,7 @@
}
}
}
}
}
}
function
testGoEmitAndCallback
()
{
function
testGoEmitAndCallback
()
{
ipc
.
emit
(
"
testGoEmitAndCallback
"
);
ipc
.
emit
(
"
testGoEmitAndCallback
"
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录