gpt4 book ai didi

java - GeckoView 中有 shouldOverrideUrlLoading 吗?

转载 作者:行者123 更新时间:2023-11-29 23:12:00 34 4
gpt4 key购买 nike

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

我已按照以下说明将 GeckoView 嵌入到我的项目中:https://wiki.mozilla.org/Mobile/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有没有类似的方法?

最佳答案

我想你要找的是navigationDelegate#OnLoadRequest

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()
}

如果您有任何其他问题,您也可以在他们的 GitHub repository 上提出问题.您可能感兴趣的另一个项目是 Mozilla Android Components .

关于java - GeckoView 中有 shouldOverrideUrlLoading 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55922979/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com