2014-10-01 48 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

相关问题