PhoneGap中文网

标题: cordova、ionic回调exec传递多参数的问题,格式不懂 [打印本页]

作者: a2833623    时间: 2016-4-25 13:00
标题: cordova、ionic回调exec传递多参数的问题,格式不懂
本帖最后由 a2833623 于 2016-4-25 13:11 编辑

1、Controller中配置的发送数据......
$scope.toastShow=function () {
    navigator.intent.toastShow("js To android数据");
};


toastShow我要发给android两个参数的数据或者更多的话,怎么传;

2、下面是配置发送给android的数据
cordova.define("org.apache.cordova.intent", function(require, exports, module) {
    var exec = require('cordova/exec');
    module.exports = {
        /**
         * 一共5个参数
         第一个 :成功会掉
         第二个 :失败回调
         第三个 :将要调用的类的配置名字(在config.xml中配置 稍后在下面会讲解)
         第四个 :调用的方法名(一个类里可能有多个方法 靠这个参数区分)
         第五个 :传递的参数  以json的格式
         */
toastShow: function(mills) {
            exec(function(winParam){
                alert(winParam);//执行成功,android 返回的数据,是类中callbackContext.success传递的参数</span>
},function (errorParam) {
                alert(errorParam);
            }, "DivPlugin", "toastShow", [mills]);
        },
    };
});

3、android方面的接受方法[size=15.0666666030884px]  [size=15.0666666030884px]
[size=15.0666666030884px]   

[size=15.0666666030884px][size=15.0666666030884px]
[size=15.0666666030884px][size=15.0666666030884px] [size=15.0666666030884px] @Override      public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
         //匹配的是方法的名字
                  if (action.equals("toastShow")) {
                          String message = args.getString(0);
                          String message2 = args.getString(1);
                          LOG.i("DivPlugin", message2);
                          Toast.makeText(cordova.getActivity(),message, Toast.LENGTH_LONG).show();
              this.echo(message, callbackContext);
              return true;
          }
          return false;
      }

[size=15.0666666030884px]

[size=15.0666666030884px]4、情况分析
[size=15.0666666030884px]没问题的情况:
[size=15.0666666030884px]1、没有问题的传一个参数的时候:[size=15.0666666030884px]
navigator.intent.toastShow("js To android数据js To android数据");

[size=15.0666666030884px]  或者具体配置参数,没有扩展性:
[size=15.0666666030884px]
[size=15.0666666030884px] toastShow: function(mills) {        exec(function(winParam){
            alert(winParam);//执行成功,android 返回的数据,是类中callbackContext.success传递的参数</span>
        },function (errorParam) {
            alert(errorParam);
        }, "DivPlugin", "toastShow", ["fdf","dfd"]);
    },
};



2、有问题的情况:[size=15.0666666030884px]下面两个情况都有问题;
1、navigator.intent.toastShow("[size=15.0666666030884px]js To android数据","[size=15.0666666030884px]js To android数据2");
2、navigator.intent.toastShow("{js To android数据,js To android数据}");





作者: a2833623    时间: 2016-4-25 13:12
文章的格式做的真水
作者: ionicwang    时间: 2016-4-25 20:21
http://bbs.phonegap100.com/thread-1160-1-1.html  这个看看
作者: a2833623    时间: 2016-4-27 14:02
ionicwang 发表于 2016-4-25 20:21
http://bbs.phonegap100.com/thread-1160-1-1.html  这个看看

你好,我看了你的链接,传递的不是多个参数,而且是自动的写上去,不是通过controller传的。




欢迎光临 PhoneGap中文网 (http://bbs.phonegap100.com/) Powered by Discuz! X3.2