Я пытаюсь зарегистрировать канал веб-сообщений, используя kotlin - js, но не могу определить, как получить доступ к типу MessageEventInit
.
https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.dom/-message-event-init/index.html
Метод window.addEventListener
предоставляет только обобщенный c Event
тип
https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.dom.events/-event-target/add-event-listener.html
fun addEventListener(
type: String,
callback: EventListener?,
options: dynamic = definedExternally)
fun addEventListener(
type: String,
callback: ((Event) -> Unit)?,
options: dynamic = definedExternally)
Это то, что До сих пор я придумал, но мне сложно построить проект.
fun configureChannel() {
val channel = MessageChannel()
var jsPortOne = channel.port1
var jsPortTwo = channel.port2
window.addEventListener("message", {
}, false)
jsPortOne.addEventListener("message", {
window.alert((it as MessageEvent).data.toString())
}, false)
jsPortTwo.addEventListener("message", {
window.alert((it as MessageEvent).data.toString())
}, false)
jsPortOne.start()
jsPortTwo.start()
}
Моя основная цель - преобразовать этот файл в Kotlin / JS и объединить его с этим kotlin android проект
https://github.com/darran-kelinske-fivestars/cordova-alternative-pattern/blob/master/app/src/main/assets/js/index.js