亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

GeckoView 中有 shouldOverrideUrlLoading 嗎?

GeckoView 中有 shouldOverrideUrlLoading 嗎?

呼啦一陣風 2022-11-02 10:30:09
我對在 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 中是否有類似的方法?
查看完整描述

1 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

我認為您正在尋找的是在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 存儲庫上打開一個問題。您可能感興趣的另一個項目是Mozilla Android Components。


查看完整回答
反對 回復 2022-11-02
  • 1 回答
  • 0 關注
  • 234 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號