ShouldOverrideUrlLoading не вызывается после нажатия на ссылку на веб-странице, загруженной с помощью LoadDataWithBaseURL

Метод ShouldOverrideUrlLoading в моем настраиваемом клиенте веб-просмотра не вызывается, когда я щелкаю ссылку внутри html, загруженного в веб-просмотр с помощью webView.LoadDataWithBaseURL(null, body, "text/html", "utf-8", null);

В результате я получаю пустую страницу:(

Как я могу перехватить события клика или есть ли способ вызвать overoverurloading?

class MyWebViewClient: WebViewClient {открытый делегат void PageLoaded(); открытое событие PageLoaded PageLoadedEvent;

        public override bool ShouldOverrideUrlLoading (WebView view, string url)
        {
            view.LoadUrl (url);
            return true;
        }

        public override void OnPageStarted (WebView view, string url, Android.Graphics.Bitmap favicon)
        {
            base.OnPageStarted (view, url, favicon);

        }

        public override void OnPageFinished (WebView view, string url)
        {
            if(PageLoadedEvent != null)
            {
                PageLoadedEvent ();
            }
            base.OnPageFinished (view, url);

        }

        public override void OnReceivedError (WebView view, ClientError errorCode, string description, string failingUrl)
        {
            base.OnReceivedError (view, errorCode, description, failingUrl);
        }
    }

1 ответ

Как объяснено в Миграция в WebView в Android 4.4 "Если вы загрузили страницу, вызвав loadData () или loadDataWithBaseURL() с недействительным или нулевым базовым URL-адресом, вы не получите обратный вызов shouldOverrideUrlLoading () для ссылки этого типа на странице ". Вы должны изменить свой базовый URL при вызове LoadDataWithBaseURL() с нуля на действительный URL.

Другие вопросы по тегам