嗨,我试图创建一个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));

10-08 15:37