Doit-il le stadload de uiwebViewDelegate personnalisé n'est pas appelé lorsque la demande UIWebView commence à charger

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

  •  28-10-2019
  •  | 
  •  

Question

J'ai défini une classe UIWebViewDelegate et je l'ai instanciée dans la propriété déléguée de mon uiwebView, mais la méthode SUSHSTARTload n'est pas appelée lorsque le WebView charge une demande. Qu'est-ce que je fais mal?

Voici le code définissant mon uiwebViewDelegate et mon 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)
                        );
   }
}

Dans mon appdélégate, je fais alors ce qui suit Fini méthode:

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

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

Notez que j'ai utilisé la copie / coller pour donner cet échantillon de code, donc il pourrait y avoir des erreurs de copie / coller mineures ici, mais mon code est compilé et le WebView charge la demande; c'est juste que le Discutoir Cela ne s'appelle pas.

Quelqu'un a-t-il une idée de ce que je fais mal ici?

Était-ce utile?

La solution

J'ai résolu cela en utilisant le Discutoir Propriété du WebView comme suit:

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

J'ai obtenu cette réponse de Miguel.de.icaza Réponse à la question publiée ici.

Autres conseils

Ne sous-classez pas UIWebView. Voir la référence de la classe UIWebView - Notes de sous-classe: http://developer.apple.com/library/ios/#documentation/uikit/reference/uiwebview_class/reference/reference.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top