Xamarin WebViewClient onLoadResource / onPageFinished

use*_*144 1 android webview xamarin

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

    });
Run Code Online (Sandbox Code Playgroud)

ρяσ*_*я K 5

要将WebViewClient添加到WebView并从shouldOverrideUrlLoading C#中显示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;
        }
}
Run Code Online (Sandbox Code Playgroud)

并使用HelloWebViewClient类构造函数传递活动上下文:

web_view.SetWebViewClient (new HelloWebViewClient (this)); 
Run Code Online (Sandbox Code Playgroud)