Debería cargarse de UIWebViewDelegate personalizado que no se llame cuando la solicitud de UiWebView comienza a cargarse

StackOverflow https://stackoverflow.com/questions/5404152

  •  28-10-2019
  •  | 
  •  

Pregunta

He definido una clase de UiWebViewDelegate y la instancié en la propiedad delegada de mi uiwebview, pero no se llama el método debería ser llamado cuando el webView carga una solicitud. ¿Qué estoy haciendo mal?

Aquí está el código que define mi uiwebviewDelegate y mi uiwebview:

public class MyWebViewDelegate: UIWebViewDelegate
{
    private UIWebView _view;
    public MyWebViewDelegate (UIWebView view)
    {
         _view = view;
    }   
    public override bool ShouldStartLoad (UIWebView webView, 
                                          MonoTouch.Foundation.NSUrlRequest request,
                                          UIWebViewNavigationType navigationType)
    {
        System.Console.WriteLine("Starting load");
        return true;
    }
}

public class MyWebView : UIWebView
{
   private static MyWebView _instance = new MyWebView ();
   private MyWebView () : base()
   {
       this.Delegate = new MyWebViewDelegate(this);
   }
   public static MyWebView Instance {
       get { return _instance; }
   }
   public void Load ()
   {
       this.LoadRequest (new NSUrlRequest(NSUrl.FromString("http://myurl"),
                           NSUrlRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData,
                           5)
                        );
   }
}

En mi appdelegate, luego estoy haciendo lo siguiente Terminado método:

// Create form view controller
viewControllerForm = new UIViewController();
viewControllerForm.View = MyWebView.Instance;
viewControllerForm.Title = Localization.Translate("Forms");

// Load webview
MyWebView.Instance.Load();

Tenga en cuenta que he usado copiar/pegar para dar esta muestra de código, por lo que podría haber algunos errores menores de copiar/pegar aquí, pero mi código está compilando y la WebView carga la solicitud; es solo que el Debería estar bien cargado Eso no se llama.

¿Alguien tiene alguna idea de lo que estoy haciendo mal aquí?

¿Fue útil?

Solución

Resolví esto haciendo uso del Debería estar bien cargado Propiedad de la vista web de la siguiente manera:

myView.ShouldStartLoad = (webView, request, navType) => {
     // Determine here what to do
}

Tengo esta respuesta de miguel.de.icaza's Respuesta a la pregunta publicada aquí.

Otros consejos

No subclase UIWebView. Consulte la referencia de la clase UIWebView - Notas de subclasificación: http://developer.apple.com/library/ios/#documentation/uikit/reference/uiwebview_class/reference/reference.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top