美文网首页
[复习] android 原生模块(带参数)

[复习] android 原生模块(带参数)

作者: 吴敬悦 | 来源:发表于2021-03-17 22:15 被阅读0次

    这篇接着上一篇: [复习] android 原生模块(不带任何参数)
    我发现中文官网教程不如英文官网,虽然我看不懂英语,但是使用谷歌翻译再加上自己的理解,还是不成问题的。

    Android Native Modules

    最主要看下面这个图:


    JavaScript类型所对应的Java类型

    先看基础类型:

        @ReactMethod
        fun testBaseType(str: String, num: Double) {
            Log.e(TAG, "$str,$num")
        }
    

    这里我使用 StringDouble ,接下来看看 javascript 怎么调用:

    NativeModules?.TestModule?.testBaseType('吴敬', 27);
    

    现在再看引用类型怎么弄。

        @ReactMethod
        fun testQuote(obj: ReadableMap, arr: ReadableArray) {
            Log.e(TAG, "${obj.getString("name")}, ${obj.getDouble("age")}")
            arr.toArrayList().forEach { Log.e(TAG, "${it},") }
        }
    

    对于 getString 就是获取字符串; getDouble 是获取 javascript 中的 number 。 在 javascript 中的调用:

    NativeModules?.TestModule?.testQuote?.({name: '吴敬悦', age: 27}, [
        1,
        2,
        3,
        4,
        5,
        6,
      ]);
    

    现在再来看回调:

        @ReactMethod
        fun testCallback(cal: Callback) {
            cal.invoke("吴敬")
        }
    

    注意 Callbackcom.facebook.react.bridge. 包下面;下面看 js 的调用:

    NativeModules?.TestModule?.testCallback?.(name => {
        console.log(name, '------');
    });
    

    相关文章

      网友评论

          本文标题:[复习] android 原生模块(带参数)

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