当我点击带有webView.LoadDataWithBaseURL的webview中加载的html内的链接时,我的自定义webview客户端中的方法ShouldOverrideUrlLoading未被调用(null,body," text / html"," utf-8",null);
因此,我得到一个空白页:(
我如何拦截点击事件或者是否有任何方法可以调用过度加载?
类MyWebViewClient:WebViewClient { public delegate 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);
}
}
答案 0 :(得分:2)
如Migrating to WebView in Android 4.4中所述“如果您通过使用无效或空基URL调用loadData()或loadDataWithBaseURL()来加载页面,那么您将不会收到此类链接的shouldOverrideUrlLoading()回调这页纸。”在将LoadDataWithBaseURL()从null调用到有效URL时,应更改基本URL。