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

upgrade-dev v2.3.34

上级 03766c33
......@@ -12,29 +12,27 @@
package cef
import (
"fmt"
"github.com/energye/energy/common"
"github.com/energye/energy/consts"
)
// appOnContextCreated 创建应用上下文 - 默认实现
func appOnContextCreated(browser *ICefBrowser, frame *ICefFrame, context *ICefV8Context) {
fmt.Println("appOnContextCreated", common.Args.ProcessType())
renderIPCCreate(browser.Identifier(), frame.Identifier())
ipcRender.initRenderIPC()
ipcRender.makeIPC(browser, frame, context)
renderIPCCreate(browser.Identifier(), frame.Identifier()) // Go IPC render
ipcRender.initRenderIPC() // render ipc
ipcRender.makeIPC(browser, frame, context) // render ipc make
bindRender.initBindIPC() // render bind
}
// appMainRunCallback 应用运行 - 默认实现
func appMainRunCallback() {
browserIPCCreate()
ipcBrowser.initBrowserIPC()
browserIPCCreate() // Go IPC browser
ipcBrowser.initBrowserIPC() // browser ipc
bindBrowser.initBrowserIPC() // browser bind
}
// appWebKitInitialized - webkit - 默认实现
func appWebKitInitialized() {
fmt.Println("appWebKitInitialized", common.Args.ProcessType())
bindRender.makeBind()
bindRender.makeBind() // render bind make
}
// renderProcessMessageReceived 渲染进程消息 - 默认实现
......
......@@ -12,7 +12,6 @@
package cef
import (
"fmt"
"github.com/energye/energy/pkgs/channel"
"github.com/energye/energy/pkgs/json"
)
......@@ -30,7 +29,6 @@ type renderIPCChan struct {
// renderIPCCreate 渲染进程IPC创建
func renderIPCCreate(browserId int32, channelId int64) {
fmt.Println("renderIPCCreate", browserId, channelId)
if renderIPC == nil {
renderIPC = new(renderIPCChan)
renderIPC.browserId = browserId
......
......@@ -33,5 +33,12 @@ func WindowInfoAsWindowless(windowInfo, windowParent uintptr, windowName string)
// RegisterExtension 注册JS扩展
func RegisterExtension(name, code string, handler *ICefV8Handler) {
if isInternalBind(name) {
return
}
registerExtension(name, code, handler)
}
func registerExtension(name, code string, handler *ICefV8Handler) {
imports.Proc(internale_CEFJSRegisterExtension).Call(api.PascalStr(name), api.PascalStr(code), handler.Instance())
}
......@@ -11,7 +11,23 @@
// 基于IPC的字段数据绑定 - 主进程
package cef
import "github.com/energye/energy/pkgs/json"
var bindBrowser *bindBrowserProcess
type bindBrowserProcess struct {
}
func (m *bindBrowserProcess) initBrowserIPC() {
browserIPC.addCallback(func(channelId int64, data json.JSON) bool {
if data != nil && data.IsObject() {
//messageJSON := data.JSONObject()
//messageId := messageJSON.GetIntByKey(ipc_id)// messageId: 同步永远是1
//emitName := messageJSON.GetStringByKey(ipc_event)
//name := messageJSON.GetStringByKey(ipc_name)
//browserId := messageJSON.GetIntByKey(ipc_browser_id)
//argumentList := messageJSON.GetArrayByKey(ipc_argumentList)
}
return false
})
}
......@@ -13,6 +13,7 @@ package cef
import (
"fmt"
"github.com/energye/energy/pkgs/json"
)
var bindRender *bindRenderProcess
......@@ -21,10 +22,28 @@ type bindRenderProcess struct {
handler *ICefV8Handler
}
func (m *bindRenderProcess) initBindIPC() {
renderIPC.addCallback(func(channelId int64, data json.JSON) bool {
if data != nil {
//messageJSON := data.JSONObject()
//messageId := messageJSON.GetIntByKey(ipc_id)// messageId: 同步永远是1
//name := messageJSON.GetStringByKey(ipc_name)
//argumentList := messageJSON.GetArrayByKey(ipc_argumentList)
//if name == internalIPCJSExecuteGoSyncEventReplay {
// return true
//}
}
return false
})
}
func (m *bindRenderProcess) makeBind() {
m.handler = V8HandlerRef.New()
m.handler.Execute(func(name string, object *ICefV8Value, arguments *TCefV8ValueArray, retVal *ResultV8Value, exception *ResultString) bool {
fmt.Println("v8Handler.Execute", name, renderIPC)
if renderIPC != nil {
}
return false
})
//注册js
......@@ -37,7 +56,6 @@ func (m *bindRenderProcess) makeBind() {
Object.defineProperty(bind, 'myparam', {
get(){
native function GetMyParam();
//return ipc.emitSync("testEmitSync", ["同步参数", 1, 2, 3, ["aaaa", "bbb", 6666]]);
return GetMyParam();
},
set(v){
......@@ -47,5 +65,5 @@ func (m *bindRenderProcess) makeBind() {
});
})();
`
RegisterExtension("v8/bind", jsCode, m.handler)
registerExtension(internalBind, jsCode, m.handler)
}
......@@ -14,9 +14,13 @@ package cef
import "github.com/energye/energy/common"
const (
internalBind = "bind"
internalBind = "v8/bind"
)
func isInternalBind(name string) bool {
return name == internalBind
}
// bindInit 初始化
func bindInit() {
isSingleProcess := application.SingleProcess()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册