UIWebViewDelegateクラスを定義し、UIWebViewのDelegateプロパティでインスタンス化しましたが、WebビューがリクエストをロードするときにShouldStartLoadメソッドが呼び出されていません。私は何が間違っているのですか?
UIWebViewDelegateと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)
);
}
}
私のappdelegateでは、FinishedLaunchingメソッドで次のことを行っています。
// Create form view controller
viewControllerForm = new UIViewController();
viewControllerForm.View = MyWebView.Instance;
viewControllerForm.Title = Localization.Translate("Forms");
// Load webview
MyWebView.Instance.Load();
このコードサンプルを提供するためにコピー/貼り付けを使用したため、ここでいくつかのマイナーなコピー/貼り付けエラーが発生する可能性がありますが、私のコードはコンパイル中であり、Webビューはリクエストをロードします。呼び出されていないのはShouldStartLoadだけです。
誰かが私がここで間違っていることを知っていますか?