<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                JavaScript Java Bridge API允許將Java對象注入JavaScript代碼。這是一個強大的功能,允許從JavaScript訪問Java功能。 **注意**: 要訪問JavaScript并注入Java對象,請確保完全加載網頁并啟用JavaScript支持。如果您注入/注冊Java對象然后加載網頁,則所有已注冊的Java對象都將被銷毀,并且在加載的網頁的JavaScript中不可用。 ### 注入Java對象 要將Java對象注入JavaScript,必須將Java對象與JavaScript對象的指定屬性相關聯。例如,您可以將新的java屬性添加到全局窗口 JavaScript對象(其他對象也可以工作),并使用以下代碼將此屬性與Java對象關聯: ``` JSValue window = browser.executeJavaScriptAndReturnValue("window"); window.asObject().setProperty("java", new JavaObject()); ``` 注意:要將Java對象注入JavaScript代碼,我們建議您使用以下方法: ``` browser.addScriptContextListener(new ScriptContextAdapter() { @Override public void onScriptContextCreated(ScriptContextEvent event) { Browser browser = event.getBrowser(); JSValue window = browser.executeJavaScriptAndReturnValue("window"); window.asObject().setProperty("java", new JavaObject()); } }); ``` JavaObject的實現可以如下: ``` public static class JavaObject { public void print(String message) { System.out.println(message); } } ``` **注意**: 確保將Java對象注入哪個類/接口標記為public。只能通過JavaScript注冊和訪問公共類。 現在,JavaScript代碼可以調用JavaObject 公共方法: ``` window.java.print('Hello Java!'); ``` **注意**: JavaScript代碼只能訪問/調用已注冊Java對象的公共方法。 ### 從JSValue獲取Java對象 您可以通過將Java對象設置為現有JavaScript對象的屬性值來將其注入JavaScript: ``` JSValue window = browser.executeJavaScriptAndReturnValue("window"); window.asObject().setProperty("java", new JavaObject()); ``` 如果您在Java代碼中讀取屬性值,則可以提取與此JavaScript值關聯的Java對象: ``` JSValue value = window.asObject().getProperty("java"); if (value.isJavaObject()) { JavaObject object = (JavaObject) value.asJavaObject(); } ``` #### 示例:從JavaScript訪問文件系統 您可以通過注入java.io.File對象為JavaScript提供對本地文件系統的訪問: ``` JSValue window = browser.executeJavaScriptAndReturnValue("window"); window.asObject().setProperty("fileSystem", new File("/")); ``` 現在JavaScript可以 直接使用 java.io.File 實例: ``` window.fileSystem.listFiles()[0].getAbsolutePath(); ``` ### JavaScript如何調用Java方法 當JavaScript調用已注冊Java對象的公共方法時,JxBrowser會自動將 JavaScript參數 轉換為相應的Java對象/原始值 。 如果JxBrowser無法轉換傳遞的JavaScript值或找到具有適當簽名的方法,則會拋出JavaScript錯誤。 如果已注冊的Java對象有多個具有相同名稱和參數數量但參數類型不同的方法,則JavaScript將調用Java類中聲明的第一個方法。例如,如果您注冊以下Java對象: ``` public class JavaObject { public void doAction(int arg1, double arg2) {} public void doAction(double arg1, int arg2) {} public void doAction(double arg1, double arg2) {} } ``` ### JavaScript到Java類型的轉換 JavaScript和Java使用不同的原始類型。JxBrowser實現從JavaScript到Java類型的自動類型轉換。以下是JxBrowser將JavaScript對象轉換為Java等價物的方法: ![](https://box.kancloud.cn/2c1ed1412edc34628d60b2971b44dcda_426x699.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看