Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
16ed9f80
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,体验更适合开发者的 AI 搜索 >>
提交
16ed9f80
编写于
3月 24, 2023
作者:
yanghye
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
upgrade-dev v2.3.35
上级
4b41fbe5
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
65 addition
and
21 deletion
+65
-21
cef/cef-v8-bind-render.go
cef/cef-v8-bind-render.go
+61
-17
cef/cef-v8-bind.go
cef/cef-v8-bind.go
+4
-2
example/dev-test/ipc-event/resources/ipc-event.html
example/dev-test/ipc-event/resources/ipc-event.html
+0
-2
未找到文件。
cef/cef-v8-bind-render.go
浏览文件 @
16ed9f80
...
...
@@ -12,8 +12,10 @@
package
cef
import
(
"bytes"
"fmt"
"github.com/energye/energy/pkgs/json"
"text/template"
)
var
bindRender
*
bindRenderProcess
...
...
@@ -48,22 +50,64 @@ func (m *bindRenderProcess) makeBind() {
})
//注册js
var
jsCode
=
`
let bind;
if (!bind) {
bind = {};
}
(function () {
Object.defineProperty(bind, 'myparam', {
get(){
native function G
etMyParam();
return G
etMyParam();
},
set(v){
native function S
etMyParam();
S
etMyParam(v);
}
});
})();
let bind;
if (!bind) {
bind = {};
}
(function () {
Object.defineProperty(bind, 'myparam', {
get(){
native function g
etMyParam();
return g
etMyParam();
},
set(v){
native function s
etMyParam();
s
etMyParam(v);
}
});
})();
`
registerExtension
(
internalBind
,
jsCode
,
m
.
handler
)
var
buf
=
&
bytes
.
Buffer
{}
buf
.
WriteString
(
fmt
.
Sprintf
(
`let %s=null;if(%s===null){%s={};}`
,
internalBind
,
internalBind
,
internalBind
))
buf
.
WriteString
(
`(function(){`
)
buf
.
WriteString
(
`})();`
)
fmt
.
Println
(
buf
.
String
())
var
tempText
=
`
{{range $i, $v := $.fields}}
Object.defineProperty({{$.bind}}, "{{$v}}", {
get(){
native function getMyParam();
{{getter ($v) }}
return getMyParam();
},
set(v){
native function setMyParam();
setMyParam(v);
}
});
{{end}}
`
var
funcs
=
make
(
template
.
FuncMap
)
funcs
[
"getter"
]
=
func
(
v
string
)
string
{
fmt
.
Println
(
"getter"
,
v
)
return
v
}
funcs
[
"setter"
]
=
func
(
v
string
)
string
{
return
""
}
temp
,
err
:=
template
.
New
(
"v8bind"
)
.
Funcs
(
funcs
)
.
Parse
(
tempText
)
if
err
!=
nil
{
panic
(
err
)
}
var
data
=
map
[
string
]
any
{}
data
[
"bind"
]
=
internalBind
var
field
=
[]
string
{
"myparam"
,
"myparam1"
}
data
[
"fields"
]
=
field
var
tempResult
=
&
bytes
.
Buffer
{}
err
=
temp
.
Execute
(
tempResult
,
data
)
if
err
!=
nil
{
panic
(
err
)
}
fmt
.
Println
(
"tempResult:"
,
tempResult
.
String
())
registerExtension
(
fmt
.
Sprintf
(
"%s/%s"
,
internalV8Bind
,
internalBind
),
jsCode
,
m
.
handler
)
}
cef/cef-v8-bind.go
浏览文件 @
16ed9f80
...
...
@@ -14,11 +14,13 @@ package cef
import
"github.com/energye/energy/common"
const
(
internalBind
=
"v8/bind"
internalBind
=
"bind"
internalV8Bind
=
"v8"
)
// isInternalBind 内部使用字段不能使用
func
isInternalBind
(
name
string
)
bool
{
return
name
==
internalBind
return
name
==
internalBind
||
name
==
internalV8Bind
}
// bindInit 初始化
...
...
example/dev-test/ipc-event/resources/ipc-event.html
浏览文件 @
16ed9f80
...
...
@@ -315,8 +315,6 @@
msg
(
"
testEmitSync-callback
"
,
result
);
})
}
</script>
</head>
<body
style=
"margin: 0px;padding: 0px;"
>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录