【问题标题】:ShouldStartLoad of custom UIWebViewDelegate not being called when UIWebView request starts loadingUIWebView 请求开始加载时未调用自定义 UIWebViewDelegate 的 ShouldStartLoad
【发布时间】:2011-03-23 10:57:11
【问题描述】:

我已经定义了一个 UIWebViewDelegate 类并在我的 UIWebView 的 Delegate 属性中对其进行了实例化,但是当 webview 加载请求时没有调用 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 没有被调用。

有人知道我在这里做错了什么吗?

【问题讨论】:

    标签: xamarin xamarin.ios


    【解决方案1】:

    我通过使用 webview 的 ShouldStartLoad 属性解决了这个问题,如下所示:

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

    我从miguel.de.icaza's 得到这个答案,回答了here 发布的问题。

    【讨论】:

      【解决方案2】:

      不要继承 UIWebView。请参阅 UIWebView 类参考 - 子类化说明:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/Reference/Reference.html

      【讨论】:

        猜你喜欢
        • 2012-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多