楼主你好: 我们通常说的 phonegap, 在Android中其实就是cordova-lib.jar在这个 jar 包中,cordova 实现了一个 CordovaPlugin 的东西,来让我们的 js 和 android 客户端进行交互。 也就说,你的问题描述是不准确的: 大概应该是如何使用phonegap,让程序和android客户端进行数据交互 接下来回答问题: 要想使程序和android客户端进行交互,需要使用plugin来进行操作。cordova plugin库 我们拿一个 ToastPlugin 举例。 例子:plugin 一共由两部分组成,首先是Android源程序。 import org.apache.cordova.CallbackContext; ··· public class ToastPlugin extends CordovaPlugin { private static final String TOAST = "show"; @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { // js 通过 cordova 传输的数据,将被接收到 args 中 if (action.equals(TOAST)) { toast(args, callbackContext); } ··· return true; } /** * 根据传入的参数显示内容 * * @param args 显示的内容 * @param callbackContext 回调函数 * * */ private void toast(JSONArray args, CallbackContext callbackContext) throws JSONException { Toast toast = Toast.makeText(this.cordova.getActivity(), args.getString(0), Toast.LENGTH_LONG).show(); } } 以上就是大致的 android 源程序,重点是继承 CordovaPlugin 并实现它的 execute方法即可在这里处理来自 js 端的数据。 接着就是将插件从Android客户端暴露出去(ps: 这里通过CordovaWebView实现的,不继续说下去了)在config.xml中配置即可暴露出去 // 注意,这里的name就是在js中,可以被访问到的名称。 <feature name="ToastPlugin"> <param name="android-package" value="com.xxx.plugin.ToastPlugin" /> </feature> 最后,js中调用的方法如下: // 注意,在这之前一定要引入 cordova.js 哦 cordova.exec(success, failure, 'ToastPlugin', 'show', ['我是测试信息哦!']); // 这里的 success, failure 分别是成功回调函数和失败回调函数 // ToastPlugin 对应feature 的 name 属性。 // show 参数,对应 android 源程序的 action 参数。 // ['我是测试信息哦!'] 是对应 android 源程序的 args 参数。 最后效果图如下:
楼主你好:
我们通常说的 phonegap, 在Android中其实就是cordova-lib.jar
在这个 jar 包中,cordova 实现了一个
CordovaPlugin
的东西,来让我们的 js 和 android 客户端进行交互。也就说,你的问题描述是不准确的: 大概应该是如何使用phonegap,让程序和android客户端进行数据交互
接下来回答问题:
要想使程序和android客户端进行交互,需要使用plugin来进行操作。cordova plugin库
我们拿一个
ToastPlugin
举例。例子:
plugin 一共由两部分组成,首先是Android源程序。
接着就是将插件从Android客户端暴露出去(ps: 这里通过CordovaWebView实现的,不继续说下去了)
在config.xml中配置即可暴露出去
最后,js中调用的方法如下:
最后效果图如下: