Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
2f45ad8c
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 搜索 >>
提交
2f45ad8c
编写于
2月 21, 2023
作者:
yanghye
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
demos: 修改/增加字段和函数绑定
上级
dd7980d9
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
109 addition
and
0 deletion
+109
-0
example/dev-test/bind/bind.go
example/dev-test/bind/bind.go
+96
-0
example/dev-test/bind/resources/bind.html
example/dev-test/bind/resources/bind.html
+13
-0
example/dev-test/bind/resources/icon.ico
example/dev-test/bind/resources/icon.ico
+0
-0
未找到文件。
example/dev-test/bind/bind.go
0 → 100644
浏览文件 @
2f45ad8c
package
main
import
(
"embed"
"fmt"
"github.com/energye/energy/cef"
"github.com/energye/energy/common/assetserve"
"github.com/energye/energy/example/browser-go-bind-js-var/src"
)
//go:embed resources
var
resources
embed
.
FS
var
cefApp
*
cef
.
TCEFApplication
func
main
()
{
//全局初始化 每个应用都必须调用的
cef
.
GlobalInit
(
nil
,
&
resources
)
//创建应用
cefApp
=
cef
.
NewApplication
(
nil
)
//指定一个URL地址,或本地html文件目录
cef
.
BrowserWindow
.
Config
.
Url
=
"http://localhost:22022/bind.html"
cef
.
BrowserWindow
.
Config
.
Title
=
"Energy - execute-javascript"
cef
.
BrowserWindow
.
Config
.
IconFS
=
"resources/icon.ico"
//内置http服务链接安全配置
cef
.
SetBrowserProcessStartAfterCallback
(
func
(
b
bool
)
{
fmt
.
Println
(
"主进程启动 创建一个内置http服务"
)
//通过内置http服务加载资源
server
:=
assetserve
.
NewAssetsHttpServer
()
server
.
PORT
=
22022
server
.
AssetsFSName
=
"resources"
//必须设置目录名
server
.
Assets
=
&
resources
go
server
.
StartHttpServer
()
})
//变量创建回调-这个函数在主进程(browser)和子进程(render)中执行
//变量的值绑定到主进程
cef
.
VariableBind
.
VariableCreateCallback
(
func
(
browser
*
cef
.
ICefBrowser
,
frame
*
cef
.
ICefFrame
,
bind
cef
.
IProvisionalBindStorage
)
{
//初始化要绑定的变量
//结构类型
src
.
JSStructVarDemo
=
&
src
.
StructVarDemo
{}
src
.
JSStructVarDemo
.
StringField
=
"初始的字符串值"
bind
.
NewObjects
(
src
.
JSStructVarDemo
)
//通用类型
src
.
JSString
=
bind
.
NewString
(
"JSString"
,
"初始的字符串值"
)
src
.
JSInt
=
bind
.
NewInteger
(
"JSInt"
,
0
)
src
.
JSBool
=
bind
.
NewBoolean
(
"JSBool"
,
false
)
src
.
JSDouble
=
bind
.
NewDouble
(
"JSDouble"
,
0.0
)
bind
.
NewFunction
(
"JSFunc"
,
src
.
JSFunc
)
})
var
err
error
cef
.
VariableBind
.
Bind
(
"TestFunc"
,
TestFunc
)
err
=
cef
.
VariableBind
.
Bind
(
"bindStr"
,
"直接传字符串"
)
fmt
.
Println
(
"bindStr:"
,
err
)
err
=
cef
.
VariableBind
.
Bind
(
"varStr"
,
&
varStr
)
fmt
.
Println
(
"varStr:"
,
err
)
err
=
cef
.
VariableBind
.
Bind
(
"varInt"
,
&
varInt
)
fmt
.
Println
(
"varInt:"
,
err
)
err
=
cef
.
VariableBind
.
Bind
(
"varInt8"
,
varInt8
)
fmt
.
Println
(
"varInt8:"
,
err
)
err
=
cef
.
VariableBind
.
Bind
(
"varFloat64"
,
varFloat64
)
fmt
.
Println
(
"varFloat64:"
,
err
)
err
=
cef
.
VariableBind
.
Bind
(
"varFloat32"
,
varFloat32
)
fmt
.
Println
(
"varFloat32:"
,
err
)
err
=
cef
.
VariableBind
.
Bind
(
"varBool"
,
&
varBool
)
fmt
.
Println
(
"varBool:"
,
err
)
//运行应用
//cef.Run(cefApp)
Test
(
&
varStr
)
fmt
.
Println
(
varStr
)
varStr
=
"asdfadsf"
Test
(
&
varStr
)
fmt
.
Println
(
varStr
)
}
var
(
varStr
=
"字符串变量"
varInt
int64
=
21
varInt8
int8
=
21
varFloat64
=
333.55
varFloat32
float32
=
222.11
varBool
=
true
)
func
TestFunc
()
string
{
return
"test"
}
type
TestStruct
struct
{
Name
string
Age
int
}
func
Test
(
bind
interface
{})
{
var
s
=
bind
.
(
*
string
)
println
(
"===="
,
*
s
)
*
s
=
"123"
}
example/dev-test/bind/resources/bind.html
0 → 100644
浏览文件 @
2f45ad8c
<!DOCTYPE html>
<html
lang=
"en"
>
<head>
<meta
charset=
"UTF-8"
>
<title>
bind
</title>
<script
type=
"application/javascript"
>
</script>
</head>
<body
style=
"overflow: hidden;margin: 0px;padding: 0px;"
>
<h3>
bind
</h3>
</body>
</html>
\ No newline at end of file
example/dev-test/bind/resources/icon.ico
0 → 100644
浏览文件 @
2f45ad8c
66.1 KB
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录