Xamarin WebViewClient onLoadResource/onPageFinished

Xamarin WebViewClient onLoadResource/onPageFinished

您好,我正在尝试创建一个 WebView 应用程序,我想创建一个等待对话框,直到页面加载完毕。

但是我尝试了不同的解决方案,但我无法弄清楚为什么它在互联网上为其他人工作时不起作用。它在 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
        }

    });

要在 C# 中将 WebViewClient 添加到 WebView 并显示来自 shouldOverrideUrlLoading 的 Toast 消息,您需要通过将 WebViewClient 扩展为:

创建一个 class
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;
        }
}

并使用HelloWebViewClientclass构造函数传递activity上下文:

web_view.SetWebViewClient (new HelloWebViewClient (this));