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.