美文网首页
Android与React Native之间传递参数

Android与React Native之间传递参数

作者: 米奇小林 | 来源:发表于2018-04-18 19:45 被阅读205次

    官方提供了这8种参数类型进行原生与ReactNative之间的转换,基本类型的参数传递很简单,利用官方重新定义的CallBack接口的invoke方法可以直接进行传递,但是集合与数组却没有明确的示例,导致原生端传递过去的JSON数组,js端必须要JSON.parse才可以认出,这很不爽。

    观察着8种参数类型其中有ReadableMap 和 ReadableArray类型,对应JavaScript的Object和Array。这个很重要!!!

    其对应接口WritableMap和WritableArray接口,以及实现了他们的WritableNativeMap和WritableNativeArray,

    (也可以通过 Arguments.createMap()Arguments.createArray())来获取对应的对象。

    Boolean -> Bool
    Integer -> Number
    Double -> Number
    Float -> Number
    String -> String
    Callback -> function
    ReadableMap -> Object
    ReadableArray -> Array
    

    1.如果传递对象:

        @ReactMethod
        public void getUserInfo(Callback callback){
            WritableMap map = Arguments.createMap();
            map.putString("islogin",MainApplication.getApplication().isLogin()+"");
            map.putString("nick_name", getApplication().getNickname());
            map.putString("user_name", getApplication().getUsername());
            map.putString("avatar_url", getApplication().getTouxiang());
            map.putString("access_token",getApplication().getAccess_token());
            map.putString("uid",getApplication().getUid()+"");
            map.putString("gender_str", getApplication().getSex());
    //        promise.resolve(map);
            callback.invoke(map);
        }
    

    2.如果传递json数组:

        @ReactMethod
        public void getAllGameList(Callback callback){
            ArrayList<Game> games = MainApplication.getApplication().getGames();
            WritableArray arrays = Arguments.createArray();
            for (Game game:games){
                WritableMap map = Arguments.createMap();
                map.putString("name",game.name);
                map.putString("thumbnail_url",game.thumbnail_url);
                .....
                arrays.pushMap(map);
            }
            callback.invoke(arrays);
        }
    

    相关文章

      网友评论

          本文标题:Android与React Native之间传递参数

          本文链接:https://www.haomeiwen.com/subject/beebkftx.html