我如何在 GeckoView 上使用 canGoBack()
Posted
技术标签:
【中文标题】我如何在 GeckoView 上使用 canGoBack()【英文标题】:How can i use canGoBack() on GeckoView 【发布时间】:2021-10-27 21:53:17 【问题描述】:下面是android Webview的代码
public void onBackPressed()
if (webView.canGoBack())
webView.goBack();
else
super.onBackPressed();
如何在 Geckoview 中使用类似的代码,或者如何在 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();
【讨论】:
我已编辑您的答案以修复代码错误。以上是关于我如何在 GeckoView 上使用 canGoBack()的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 上将 Javascript 注入 GeckoView
GeckoView 中有 shouldOverrideUrlLoading 吗?