我已经定义了一个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)
);
}
}在我的app委托中,我将在FinishedLaunching方法中执行以下操作:
// Create form view controller
viewControllerForm = new UIViewController();
viewControllerForm.View = MyWebView.Instance;
viewControllerForm.Title = Localization.Translate("Forms");
// Load webview
MyWebView.Instance.Load();请注意,我已经使用copy/ and给出了这个代码示例,所以这里可能有一些小的复制/粘贴错误,但是我的代码正在编译,webview加载请求;只是没有调用ShouldStartLoad。
有人知道我在这里做错了什么吗?
发布于 2011-03-26 08:22:01
我通过使用webview的ShouldStartLoad属性来解决这个问题,如下所示:
myView.ShouldStartLoad = (webView, request, navType) => {
// Determine here what to do
}我是从miguel.de.icaza's对here发布的问题的回答中得到这个答案的。
发布于 2011-03-24 21:35:11
不要子类UIWebView。参见UIWebView类引用-子类注释:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/Reference/Reference.html
https://stackoverflow.com/questions/5404152
复制相似问题