【问题标题】:After resume sometimes show the Home Screen on Nativescript-Vue恢复后有时会在 Nativescript-Vue 上显示主屏幕
【发布时间】:2023-03-31 15:35:01
【问题描述】:

我的应用程序和他的导航有问题。

我的应用有四个屏幕,但有时当点击第二个屏幕(或任何其他屏幕)中的 android 主页按钮并在恢复应用后,这会显示主屏幕而不是最后一个屏幕,有什么想法可以解决这个问题吗?

更新: 有时在恢复应用程序后,这会显示正确的屏幕(最后显示)但我不知道这是怎么发生的(它是相同的源代码),我在许多版本的 android 模拟器(4.4、5.0、7.0 和 8.0 )。这可能是一个错误吗?

屏幕录制: https://i.imgur.com/VhWFhWU.gifv

代码: https://play.nativescript.org/?template=play-vue&id=wKkYCe&v=2

谢谢

【问题讨论】:

    标签: nativescript nativescript-vue


    【解决方案1】:

    如果您在应用程序中使用单帧,这应该很容易。您可以监听活动的恢复事件并调用 $navigateBack 并引用返回堆栈中的第一项。

           if (application.android) {
    
     application.android.on(application.AndroidApplication.activityResumedEvent,
                    () => {
                        const backStack = frame.topmost().backStack[0];
                        if (backStack) {
                            setTimeout(() => {
                                this.$navigateBack({}, backStack);
                            }, 0);
                        }
                    }, this);
            }
    

    Playground Sample

    【讨论】:

    • 谢谢,这很奇怪,因为有时使用相同的代码可以正常工作。
    • 抱歉,我没抓住重点。什么似乎是有线的,它有时会坏吗?这就是你的意思?
    • 如果没有您的代码,有时当应用程序恢复显示正确的屏幕但很难重现时。如果我在恢复正确屏幕时使用您的代码,此代码会改变屏幕吗?
    • 是的,我想这就是您所要求的。您的问题是,恢复后始终显示主屏幕。当您恢复到您的应用程序时,上面的代码会返回到您的第一个组件。如果这不是您所期望的,请更新您的问题并提供更多详细信息。
    • 其实我以为你在要求类似的东西,当你恢复时导航到主屏幕。但看起来这是你的问题,我不确定这是怎么发生的。我也没有在同一个 Playground 上复制它。我能想到的唯一可能的原因是,要么你有一些正在运行的清理应用程序,它一旦进入后台就会杀死你的应用程序,或者有一个设置你的开发人员选项来销毁活动,可能是启用了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    相关资源
    最近更新 更多