嗨,我试图创建一个WebView应用程序,我想创建一个等待对话框,直到页面加载完毕。
但是,我尝试了不同的解决方案,但我无法弄清楚为什么当它为Internet上的其他人工作时它不起作用。它在Xamarin中失败,说在此行webview.SetWebViewClient(new WebViewClient(){,甚至我确定记得}的内容)之后缺少“}”;然后结束。
看来它无法在webview.SetWebViewClient()内部创建某些内容。
webview.SetWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
public void onLoadResource(WebView view, String url) {
//code to show dialog
}
public void onPageFinished(WebView view, String url) {
//code to dismiss dialog
}
});
最佳答案
要将WebViewClient添加到WebView并在C#中显示shouldOverrideUrlLoading
中的Toast消息,您需要通过将WebViewClient
扩展为以下内容来创建一个类:
public class HelloWebViewClient : WebViewClient
{
public Activity mActivity;
public HelloWebViewClient(Activity mActivity){
this.mActivity=mActivity
}
public override bool ShouldOverrideUrlLoading (WebView view, string url)
{
view.LoadUrl (url);
Toast.MakeText (mActivity, "Toast Message",
ToastLength.Long).Show();
return true;
}
}
并使用
HelloWebViewClient
类构造函数传递活动上下文:web_view.SetWebViewClient (new HelloWebViewClient (this));