下面是android Webview的代码
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
我如何在 Geckoview 中使用类似的代码,或者如何在 Geckoview 上实现类似的过程?
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();
}
}