Mapbox 导航 SDK v3(React Native 未初始化)

问题描述 投票:0回答:1

您好,我正在 React Native (v0.73) 项目中将 Mapbox Navigation SDK v3 与 Android 结合使用。

我被困在视图文件中初始化 sdk

class MapNavigationView(private val context: ThemedReactContext) :
...
private val navigationObserver = object : MapboxNavigationObserver {
        override fun onAttached(mapboxNavigation: MapboxNavigation) {
            sendErrorToReact("onAttached: $mapboxNavigation")
        }
        override fun onDetached(mapboxNavigation: MapboxNavigation) {
            sendErrorToReact("onDetached: $mapboxNavigation")
        }
    }
private lateinit var mapboxNavigation: MapboxNavigation
...
fun onCreate() {

        if (!MapboxNavigationApp.isSetup()) {
            sendErrorToReact("Getting setup")
            MapboxNavigationApp.setup (
                NavigationOptions.Builder(context)
                    .build()
            )
            MapboxNavigationApp.registerObserver(navigationObserver)
            sendErrorToReact(MapboxNavigationApp.current().toString())
            sendErrorToReact(MapboxNavigationApp.toString())
        }
        if(MapboxNavigationApp.current() != null){
            mapboxNavigation = MapboxNavigationApp.current()!!
        }
}

MapboxNavigationApp.current() 始终为 null。我不断收到 mapboxNaigation 变量未初始化的错误。

任何帮助让这个运行将非常感谢!

react-native kotlin mapbox mapbox-android mapbox-navigation
1个回答
0
投票

好吧,我设法通过使用生命周期事件解决了这个问题:

override fun onAttachedToWindow() {
    super.onAttachedToWindow()
    lifecycle.addObserver(object : DefaultLifecycleObserver {
        override fun onResume(owner: LifecycleOwner) {
            sendErrorToReact("onResume")
            MapboxNavigationApp.attach(owner)
        }

        override fun onPause(owner: LifecycleOwner) {
            sendErrorToReact("onPause")
            MapboxNavigationApp.detach(owner)
        }
    })
    onCreate()
}
© www.soinside.com 2019 - 2024. All rights reserved.