如何在 Kotlin 的 JS 接口中使用可选参数调用

How to call with optional params in JS interface for Kotlin

我在 Kotlin 中有一个 Javascript 桥接方法,

@JavascriptInterface
fun add(a: Int? = 0, b: Int? = 0): Int {
  return a + b
}

如果我想用默认值调用,如何从web app js调用这个方法?

android.add(null, null) // OR
android.add() // OR
android.add(a = 0, b = 0)// OR

或者什么?

要使用参数的默认值 undefined 应作为参数传递。可以这样做:

android.add() // empty arguments means all of them are undefined so defaults are used
android.add(1) // a == 1, b == undefined so the default value (0) is used
android.add(void 0, 2) // a == undefined and its default (0) is used, b == 2

您也可以使用 annotation

@JvmOverloads

这会在为 @JavaScriptInterface 编译的字节码中生成重载方法。

您可以轻松调用

android.add()

从 JS 调用方法的默认参数, 仍然保持您的代码惯用。