How to get geolocation in KMP wasmJs project? wind...
# webassembly
m
How to get geolocation in KMP wasmJs project? window.navigator.geolocation is not found
1
v
As it's not currently part of the
navigator
exposed by
kotlinx.browser
, you should write up your own external, here's a snippet from my source, feel free to use that:
Copy code
@JsName("navigator")
external val myNavigator: Navigator

external interface Navigator : JsAny {
    val geolocation: Geolocation
 }

external interface Geolocation : JsAny {
    fun getCurrentPosition(
        successCallback: (position: Position) -> Unit,
        errorCallback: ((PositionError) -> Unit)? = definedExternally,
        options: PositionOptions? = definedExternally
    )
}


external interface Position : JsAny {
    val coords: Coordinates
    val timestamp: Double
}

external interface Coordinates : JsAny {
    val latitude: Double
    val longitude: Double
    val accuracy: Double
    val altitude: Double?
    val altitudeAccuracy: Double?
    val heading: Double?
    val speed: Double?
}

external interface PositionError : JsAny {
    val code: Short
    val message: String
}

external interface PositionOptions : JsAny {
    var enableHighAccuracy: Boolean?
    var timeout: Int?
    var maximumAge: Int?
}
m
Thanks a lot @Vidmantas Kerbelis!
👍 1
m
t
Yes, all stable browser API is already in
kotlin-browser
😉
And even some experimental...
1