如何在Kvision项目中从Javascript调用Kotlin中定义的方法

xtfmy6hx  于 2022-12-30  发布在  Kotlin
关注(0)|答案(1)|浏览(109)

我有一个Kotlin/JS项目,使用Kvision(我认为是从Kvision模板开始的)我的build. gradle. kts看起来像https://ideone.com/yOEcMF
问题:
1.我如何从JS代码调用我在Kotlin中定义的函数?假设我在. kt文件中有这个函数:
Package com. zzz
类KotlinHelper {

fun doXXX(str: String): Int = str.length

 fun doYYY(bytes: ByteArray): String = bytes.decodeToString()

}
数值kotlinHelper = KotlinHelper()
我想从Javascript +/-调用它,如下所示

kotlinHelper.doXXX("something");

(the另一方面,我管理,意思是从JS中定义的Kotlin代码调用-通过使用Kotlin类上的"external"修饰符和JS中的实际实现)找到了这个https://kotlinlang.org/docs/js-to-kotlin-interop.html ..但仍然没有管理。
1.你能解释一下这是如何工作的吗?我的Kotlin代码+Kotlin + Kvision带来的任何东西似乎都被捆绑和转移到Javascript中"main.bundle.js"代码也似乎被混淆和缩小了。我显然想用我定义的名称调用方法-这可能吗?Kotlin代码,没有使用-删除了吗?

ubbxdtey

ubbxdtey1#

像这样工作
来自JS的调用

new KTJS_Kvision.com.xxx.yyy.KotlinHelper().doXXX("Ana")

KTJS_Kvision -是我的项目名称
com.xxx.yyy.KotlinHelper是类的全名(包括包名)
我还有这些注解:

@JsExport
class KotlinHelper {
    @JsName("doXXX")
    fun doXXX(str: String): Int = str.length
...

相关问题