提交 bebc4385 编写于 作者: yanghye's avatar yanghye

upgrade-dev v2.3.4

上级 8f083af0
......@@ -114,16 +114,17 @@ func (m *ipcRenderProcess) ipcGoExecuteJSEvent(browser *ICefBrowser, frame *ICef
count = args.GetData(argsBytes, 0)
args.Free()
}
if count > 0 {
argsV8ValueArray, _ = ipcValueConvert.BytesToV8ArrayValue(argsBytes)
}
if callback.context.Enter() {
callback.function.ExecuteFunctionWithContext(callback.context, nil, argsV8ValueArray)
if count > 0 {
argsV8ValueArray, _ = ipcValueConvert.BytesToV8ArrayValue(argsBytes)
}
ret := callback.function.ExecuteFunctionWithContext(callback.context, nil, argsV8ValueArray)
if argsV8ValueArray != nil {
argsV8ValueArray.Free()
}
ret.Free()
callback.context.Exit()
}
if argsV8ValueArray != nil {
argsV8ValueArray.Free()
}
if messageId != 0 { // callback
}
......
......@@ -9,6 +9,8 @@
//----------------------------------------
// CEF v8 value V8所有类型
//
// ICefV8Value 创建和使用一搬在 v8context 上下文中使用
package cef
import (
......
......@@ -42,45 +42,58 @@ func main() {
go server.StartHttpServer()
})
// 测试用的入参 和 出参
var r0 = "字符串{}{}{}字符串[][]字符串"
var r1 = 1000011
var r2 = 66666611.0123
var r3 = true
var r4 = &MyError{error: "返回值"}
var r5 = make([]string, 3, 3)
r5[0] = "Array数组值1"
r5[1] = "Array数组值2"
r5[2] = "Array数组值3"
var r6 = make([]*src.StructVarDemo, 4, 4)
r6[0] = &src.StructVarDemo{StringField: "StringField1字符串1"}
r6[1] = &src.StructVarDemo{StringField: "StringField2字符串2", IntField: 111, BoolField: true, FloatField: 999.99, SubStructObj: &src.SubStructObj{StringField: "子对象String值", StructVarDemo: &src.StructVarDemo{StringField: "嵌套了嵌套了"}}}
var r7 = make([]src.StructVarDemo, 4, 4)
r7[0] = src.StructVarDemo{StringField: "r7参数字符串1"}
r7[1] = src.StructVarDemo{StringField: "r7参数字符串2"}
var r8 = map[string]string{}
r8["r8key1"] = "r8key1"
r8["r8key2"] = "r8key2"
var r9 = map[string]interface{}{}
r9["r9keyr6"] = r6
r9["r9keyr61"] = r6[1]
r9["r9keyr7"] = r7[1]
r9["r9keystrValue"] = "stringValue"
r9["r9keyintValue"] = 50000
r9["r9keyboolValue"] = true
r9["r9keyfloatValue"] = 5555555.99999
r9["r9keystrArrr5"] = r5
var r10 = make([]map[string]interface{}, 3)
r10[0] = r9
r10[1] = r9
r10[2] = r9
ipc.On("testGoEmit", func(context ipc.IContext) {
fmt.Println("testGoEmit", context.BrowserId(), context.FrameId())
ipc.Emit("onTestName1", "aaa", "bbb")
//触发JS监听的函数,并传入参数
ipc.Emit("onTestName1", r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10)
//ipc.EmitAndCallback("", func() {}, "aaaa")
})
ipc.On("testGoEmitAndCallback", func(context ipc.IContext) {
fmt.Println("testGoEmit", context.BrowserId(), context.FrameId())
//触发JS监听的函数,并传入参数
ipc.EmitAndCallback("onTestName1", []any{r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10}, func() {
})
//ipc.EmitAndCallback("", func() {}, "aaaa")
})
ipc.OnArguments("testResultArgs", func(args1 int) (string, int, float64, bool, *MyError, []string, []*src.StructVarDemo, []src.StructVarDemo, map[string]string, map[string]interface{}, []map[string]interface{}) {
fmt.Println("args1", args1)
var r0 = "字符串{}{}{}字符串[][]字符串"
var r1 = 1000011
var r2 = 66666611.0123
var r3 = true
var r4 = &MyError{error: "返回值"}
var r5 = make([]string, 3, 3)
r5[0] = "Array数组值1"
r5[1] = "Array数组值2"
r5[2] = "Array数组值3"
var r6 = make([]*src.StructVarDemo, 4, 4)
r6[0] = &src.StructVarDemo{StringField: "StringField1字符串1"}
r6[1] = &src.StructVarDemo{StringField: "StringField2字符串2", IntField: 111, BoolField: true, FloatField: 999.99, SubStructObj: &src.SubStructObj{StringField: "子对象String值", StructVarDemo: &src.StructVarDemo{StringField: "嵌套了嵌套了"}}}
var r7 = make([]src.StructVarDemo, 4, 4)
r7[0] = src.StructVarDemo{StringField: "r7参数字符串1"}
r7[1] = src.StructVarDemo{StringField: "r7参数字符串2"}
var r8 = map[string]string{}
r8["r8key1"] = "r8key1"
r8["r8key2"] = "r8key2"
var r9 = map[string]interface{}{}
r9["r9keyr6"] = r6
r9["r9keyr61"] = r6[1]
r9["r9keyr7"] = r7[1]
r9["r9keystrValue"] = "stringValue"
r9["r9keyintValue"] = 50000
r9["r9keyboolValue"] = true
r9["r9keyfloatValue"] = 5555555.99999
r9["r9keystrArrr5"] = r5
var r10 = make([]map[string]interface{}, 3)
r10[0] = r9
r10[1] = r9
r10[2] = r9
return r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10
})
......@@ -106,37 +119,7 @@ func main() {
argument.GetByIndex(i)
//fmt.Println(i, "type:", value.Type(), "isInt:", value.IsInt())
}
var r0 = "字符串{}{}{}字符串[][]字符串"
var r1 = 1000011
var r2 = 66666611.0123
var r3 = true
var r4 = &MyError{error: "返回值"}
var r5 = make([]string, 3, 3)
r5[0] = "Array数组值1"
r5[1] = "Array数组值2"
r5[2] = "Array数组值3"
var r6 = make([]*src.StructVarDemo, 4, 4)
r6[0] = &src.StructVarDemo{StringField: "StringField1字符串1"}
r6[1] = &src.StructVarDemo{StringField: "StringField2字符串2", IntField: 111, BoolField: true, FloatField: 999.99, SubStructObj: &src.SubStructObj{StringField: "子对象String值", StructVarDemo: &src.StructVarDemo{StringField: "嵌套了嵌套了"}}}
var r7 = make([]src.StructVarDemo, 4, 4)
r7[0] = src.StructVarDemo{StringField: "r7参数字符串1"}
r7[1] = src.StructVarDemo{StringField: "r7参数字符串2"}
var r8 = map[string]string{}
r8["r8key1"] = "r8key1"
r8["r8key2"] = "r8key2"
var r9 = map[string]interface{}{}
r9["r9keyr6"] = r6
r9["r9keyr61"] = r6[1]
r9["r9keyr7"] = r7[1]
r9["r9keystrValue"] = "stringValue"
r9["r9keyintValue"] = 50000
r9["r9keyboolValue"] = true
r9["r9keyfloatValue"] = 5555555.99999
r9["r9keystrArrr5"] = r5
var r10 = make([]map[string]interface{}, 3)
r10[0] = r9
r10[1] = r9
r10[2] = r9
context.Result(r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10)
})
......
......@@ -120,8 +120,20 @@
})
}
ipc.on('onTestName1', function (param1, param2, param3) {
msg("onTestName1", param1, param2, param3);
ipc.on('onTestName1', function (r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10) {
clearMsg()
msg("onTestName1");
msg("R0:", r0);
msg("R1:", r1);
msg("R2:", r2);
msg("R3:", r3);
msg("R4:", r4);
msg("R5:", r5);
msg("R6:", r6, JSON.stringify(r6));
msg("R7:", r7, JSON.stringify(r7));
msg("R8:", r8, JSON.stringify(r8));
msg("R9:", r9, JSON.stringify(r9));
msg("R10:", r10, JSON.stringify(r10));
});
ipc.on('onTestName2', function (param1, param2, param3) {
......
......@@ -119,7 +119,7 @@ func Emit(name string, argument ...any) {
//EmitAndCallback
// IPC GO 中触发 JS 监听的事件
func EmitAndCallback(name string, callback any, argument ...any) {
func EmitAndCallback(name string, argument []any, callback any) {
if browser == nil || name == "" || browser.processMessage == nil {
return
}
......@@ -138,7 +138,7 @@ func EmitTarget(name string, target ITarget, argument ...any) {
//EmitTargetAndCallback
// IPC GO 中触发指定目标 JS 监听的事件
func EmitTargetAndCallback(name string, target ITarget, callback any, argument ...any) {
func EmitTargetAndCallback(name string, target ITarget, argument []any, callback any) {
if browser == nil || name == "" || browser.processMessage == nil {
return
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册