从Kotlin调用JavaScript

时间:2018-05-14 19:42:20

标签: javascript react-native kotlin kotlin-js-interop

我有ReactNative项目,我试图从Kotlin调用简单的JS函数(从JS调用Kotlin工作正常)。我的项目目录如下所示:
enter image description here

“shared”模块编译为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")
} 

所以我试图从Kotlin调用myFun()来获取JS中的控制台日志。但我得到例外:

myFun is not defined

我正在寻找这个文档:
https://kotlinlang.org/docs/reference/js-interop.html
https://kotlinlang.org/docs/reference/js-modules.html#applying-jsmodule-to-packages
但我不确定如何使用这些注释(如果需要它们?)。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

我认为你应该用

注释你的kotlin声明
@JsModule("<module_name>") // seems like it is App
external fun myFun()

并在gradle sript中设置模块类似于umd,如此

compileKotlin2Js.kotlinOptions.moduleKind = "umd"