Вызов JavaScript из Котлина
У меня есть проект ReactNative, и я пытаюсь вызвать простую функцию JS из Kotlin (вызов Kotlin из JS работает нормально). Мой каталог проектов выглядит так:
"общий" модуль скомпилирован как модуль commonjs.
В Main.kt у меня есть (сокращено):
external fun myFun()
В App.js у меня есть (сокращено):
import * as shared from './shared/build/classes/kotlin/main/shared.js'
export function myFun(){
console.log("Hello")
}
Поэтому я пытаюсь вызвать myFun() из Kotlin, чтобы получить консольный журнал в JS. Но я получаю исключение:
myFun is not defined
Я искал это документы:
https://kotlinlang.org/docs/reference/js-interop.html
https://kotlinlang.org/docs/reference/js-modules.html
Но я не уверен, как использовать эти аннотации (если они нужны?). Спасибо за помощь.
1 ответ
Я думаю, что вы должны аннотировать свою декларацию
@JsModule("<module_name>") // seems like it is App
external fun myFun()
и настроить модуль вида umd
в Gradle Script, как это
compileKotlin2Js.kotlinOptions.moduleKind = "umd"