【问题标题】:How can i use canGoBack() on GeckoView我如何在 GeckoView 上使用 canGoBack()
【发布时间】:2021-10-27 21:53:17
【问题描述】:

下面是android Webview的代码

public void onBackPressed() {
    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }
}

如何在 Geckoview 中使用类似的代码,或者如何在 Geckoview 上实现类似的流程?

【问题讨论】:

    标签: android firefox webview mozilla geckoview


    【解决方案1】:

    GeckoView 通过NavigationDelegate.onCanGoBack 提供这条信息但不存储它,因此您需要创建一个实现NavigationDelegate 的类来执行此操作。

    首先创建你自己的委托类:

    private class MyNavigationDelegate implements GeckoSession.NavigationDelegate {
        public boolean canGoBack = false;
    
        @Override
        public void onCanGoBack(GeckoSession session, boolean canGoBack) {
            this.canGoBack = canGoBack;
        }
    }
    
    private MyNavigationDelegate navigationDelegate = new MyNavigationDelegate();
    

    然后将委托设置在您创建GeckoSession 的位置:

    session.setNavigationDelegate(navigationDelegate);
    

    然后你可以像这样实现onBackPressed

    public void onBackPressed() {
        if (navigationDelegate.canGoBack) {
            session.goBack();
        } else {
            super.onBackPressed();
        }
    }
    
    

    【讨论】:

    • 我已编辑您的答案以修复代码错误。
    猜你喜欢
    • 1970-01-01
    • 2019-12-06
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多