如何在 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 调用方法的默认参数,
仍然保持您的代码惯用。
我在 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 调用方法的默认参数, 仍然保持您的代码惯用。