Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GeckoView中是否有一个shouldlowing?_Java_Android_Firefox_Gecko_Geckoview - Fatal编程技术网

Java GeckoView中是否有一个shouldlowing?

Java GeckoView中是否有一个shouldlowing?,java,android,firefox,gecko,geckoview,Java,Android,Firefox,Gecko,Geckoview,我非常熟悉在Android WebView中使用shouldOverrideUrlLoading方法,并在一些项目中使用过它。 我有一个新项目需要Mozilla的GeckoView而不是标准的WebView,但我似乎找不到覆盖URL的方法(以防止用户从最初加载的网站上跟踪某些链接)。有这样的方法吗 我已经将GeckoView嵌入到我的项目中,并给出了以下说明:这些网站表现得很棒 我尝试模拟的Android WebView代码如下所示: browser.setWebViewClient(new W

我非常熟悉在Android WebView中使用shouldOverrideUrlLoading方法,并在一些项目中使用过它。 我有一个新项目需要Mozilla的GeckoView而不是标准的WebView,但我似乎找不到覆盖URL的方法(以防止用户从最初加载的网站上跟踪某些链接)。有这样的方法吗

我已经将GeckoView嵌入到我的项目中,并给出了以下说明:这些网站表现得很棒

我尝试模拟的Android WebView代码如下所示:

browser.setWebViewClient(new WebViewClient() {
  public boolean shouldOverrideUrlLoading(WebView view, String url) {
    Uri uri = Uri.parse(url);
    if (url.startsWith("https://www.example.com/")) {
      return false;
    }
    return true;
  }
});

GeckoView中有类似的方法吗?

我想你正在寻找的是

private-fun-createNavigationDelegate()=对象:GeckoSession.NavigationDelegate{

重写fun onLoadRequest(会话:GeckoSession,请求:GeckoSession.NavigationDelegate.LoadRequest):GeckoResult.您可能感兴趣的另一个项目是。

如果它有
setWebViewClient
方法,请创建扩展
WebViewClient
的类,并重写
shouldloverrideurlloading
对不起,如果我不清楚,@CagriYalcin!代码示例是我从使用标准Andr的旧项目中提取的oid WebView。我正在寻找GeckView的做事方式。所以请查看。
private fun createNavigationDelegate() = object : GeckoSession.NavigationDelegate {
    override fun onLoadRequest(session: GeckoSession, request: GeckoSession.NavigationDelegate.LoadRequest): GeckoResult<AllowOrDeny> {
        return if (request.uri.startsWith("https://www.example.com/")) {
            GeckoResult.fromValue(AllowOrDeny.DENY)
        } else {
            GeckoResult.fromValue(AllowOrDeny.ALLOW)
        }
    }
}

private fun setupGeckoView() {
    geckoView = findViewById(R.id.geckoview)
    val runtime = GeckoRuntime.create(this)
    geckoSession.open(runtime)
    geckoView.setSession(geckoSession)
    geckoSession.loadUri(INITIAL_URL)
    geckoSession.navigationDelegate = createNavigationDelegate()
}