2014-10-01 15 views
1

我的應用程序使用科爾多瓦。我需要捕獲一個按鍵在我的應用程序,然後在我的科爾多瓦的應用程序調用Java功能,像這樣:如何在Cordova/Phonegap應用程序中通過JavaScript調用Java函數?

$(document).on('keypress', function() { 
    // call mySpecialFunction() Java function here 
}); 

,然後科爾多瓦應用程序的主要活動:

public class EndPipe extends CordovaActivity 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     super.init(); 
     super.loadUrl(Config.getStartUrl()); 
    } 

    public void mySpecialFunction() { 
     // some Java code here 
    } 
} 

我怎樣才能做到這一點?

+1

您將要查找'創建科爾多瓦plugin'你將需要構建一個cordova插件來訪問來自JS的本地方法。 – 2014-10-01 18:09:39

回答

4

你可以試試這個

首先你需要在config.xml中聲明你的自定義插件。你可以在res> xml文件夾中找到這個文件。

<feature name="CustomPlugin"> 
     <param name="android-package" value="com.Phonegap.CustomPlugin" /> 
</feature> 

然後,你需要使用Java的代碼

public class CustomPlugin extends CordovaPlugin { 

    @Override 
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) 
      throws JSONException { 

     if (action.equals("sayHello")){ 
      try { 
       String responseText = "Hello world, " + args.getString(0); 
       callbackContext.success(responseText); 
      } catch (JSONException e){ 
       callbackContext.error("Failed to parse parameters"); 
      } 
      return true; 
     } 

     return false; 
    } 
} 

最後,我們從JavaScript調用插件來實現插件

function initial(){ 
    var name = $("#NameInput").val(); 
    cordova.exec(sayHelloSuccess, sayHelloFailure, "CustomPlugin", "sayHello", [name]); 
} 

function sayHelloSuccess(data){ 
    alert("OK: " + data); 
} 

function sayHelloFailure(data){ 
    alert("FAIL: " + data); 
} 
+0

我應該在哪裏保存javacode – 2016-07-04 06:47:22

+0

Dato'Mohammad Nurdin可能知道在哪裏可以將java文件放在phonegap項目中? – user1788736 2016-09-18 09:04:08

+1

Hi @LAnantaPrasad,您可以從cordova執行'cordova plugin add MyPluginName'來創建一個存根插件。 – Oli 2017-11-03 09:42:37

相關問題