android - 我如何在 GeckoView 上使用 canGoBack()
问题描述
下面是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();
}
}
推荐阅读
- python - 在 pandas to_sql 中使用方法和块大小时出错
- php - 当我在另一个系统上运行项目时出现错误...我该如何解决?
- python - 无法使用已安装的 Python 包
- c# - EF Core 实体类和 Clean 架构
- nginx - 如何使用 NGINX 将 POST 请求重定向到另一个域?
- json - 由于打印后显示的模式不正确,无法展平嵌套的 json
- reactjs - 将字母放入输入字段时状态被清除
- reactjs - React:使用箭头函数创建的窗口方法内“this”的范围
- python - python脚本,它创建一个目录,里面有一个文件,python安装在任何计算机上
- node.js - 无法在 npm 依赖项中使用私有仓库