V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Android

关于 Android 原生模块为 RN 提供接口的问题

  •  
  •   JellyBeanX · 10 天前 · 800 次点击

    公司的项目最近需要做 HTTPS 双向认证,需要我 android 端给前端提供 HTTPS 双向认证的 RN 接口,但是遇到一个问题,就是前端传入的参数,我不知道 java 该用什么类型接收。贴一些关键代码 前端调用接口的相关代码: let androidGeetHttps = (url: string, params: object, successCallback: Function, errorCallback: Function) => { NativeModules.HttpsGo.sendHttpsRequest({ 'httpsType': 'get', 'url': url, 'parameters': params },(res) => { successCallback(res); console.log(res); },(err) => { errorCallback(err); console.log(err); }); }; 请问,对于 sendHttpsRequest 内的第一个参数我应该以什么类型接收,我尝试过 JSONObject 会报错,改成 String,前端说代码不美观。那么有没有什么办法可以既不违反前端的代码规范,Java 又能解析。

    5 回复  |  直到 2018-02-12 15:09:49 +08:00
        1
    Mikewu   10 天前
    安卓端以 ReadableMap 接收传参就可以了
        2
    JellyBeanX   9 天前
    @Mikewu 问题是,parameters 这个键对应的值是不固定的,对应到 Json 上 parameters 对应的应该是一个 JsonObject,内部可能有 id,username,password···键的名称和数量都是不固定,map 不是要先设置键吗,我该怎么解析呢
        3
    KNOX   9 天前 via Android
    我也遇到过类似的问题,Java 是强类型语言,JavaScript 是弱类型,开发时约定好了不能确定到了运行时不出幺蛾子,所以最后都是前端妥协。楼主可以强势一点
        4
    Mikewu   9 天前   ♥ 1
    @JellyBeanX #2 parameters 里面对应的 key/value 应该是你和 RN 端协商好吧,至于 RN 于 Android 数据转换,帮你百度了一篇文章,https://www.jianshu.com/p/1be8da8b8b15 (其中第三段:js 和原生数据类型转换工具类)
        5
    JellyBeanX   9 天前
    @KNOX 嗯嗯,明年来了跟前端喝喝茶😄
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   512 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 41ms · UTC 19:05 · PVG 03:05 · LAX 11:05 · JFK 14:05
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1