@@ -16,7 +16,7 @@ import org.cef.handler.CefLoadHandlerAdapter
1616import org.cef.network.CefRequest
1717
1818class JSJavaBridge (private val jbCefBrowser : JBCefBrowser ) {
19- private val jsQuery: JBCefJSQuery = JBCefJSQuery .create(( jbCefBrowser as JBCefBrowserBase ) )
19+ val jsQuery = JBCefJSQuery .create(jbCefBrowser as JBCefBrowserBase )
2020
2121 init {
2222 jsQuery.addHandler { arg: String -> callJava(arg) }
@@ -43,19 +43,19 @@ class JSJavaBridge(private val jbCefBrowser: JBCefBrowser) {
4343 }
4444
4545 fun registerToBrowser () {
46+
4647 jbCefBrowser.jbCefClient.addLoadHandler(object : CefLoadHandlerAdapter () {
47- override fun onLoadStart (browser : CefBrowser , frame : CefFrame , transitionType : CefRequest .TransitionType ) {
48- browser.executeJavaScript(
49- " window.JSJavaBridge = {"
50- + " callJava : function(arg) {"
51- + jsQuery.inject(
52- " arg" ,
53- " response => console.log(response)" ,
54- " (error_code, error_message) => console.log('callJava Failed', error_code, error_message)"
55- )
56- + " }"
57- + " };" ,
58- " " , 0
48+ override fun onLoadStart (browser : CefBrowser ? , frame : CefFrame ? , transitionType : CefRequest .TransitionType ? ) {
49+ jbCefBrowser.cefBrowser.executeJavaScript("""
50+ window.JSJavaBridge = {callJava : function(arg) {
51+ ${jsQuery.inject(
52+ " arg" ,
53+ " response => console.log(response)" ,
54+ " (error_code, error_message) => console.log('callJava Failed', error_code, error_message)"
55+ )}
56+ }};
57+ """ .trimIndent(),
58+ jbCefBrowser.cefBrowser.url, 0
5959 )
6060 }
6161
0 commit comments