uiwebviewリクエストがロードを開始したときに呼び出されないカスタムuiwebviewdelegateのspestartload
-
28-10-2019 - |
質問
uiwebviewdelegateクラスを定義し、uiwebviewのデリゲートプロパティにインスタンス化しましたが、WebViewがリクエストをロードするときにSpectArtLoadメソッドは呼び出されません。私は何が間違っているのですか?
これが私の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で私は次のことをしています 完成しました 方法:
// Create form view controller
viewControllerForm = new UIViewController();
viewControllerForm.View = MyWebView.Instance;
viewControllerForm.Title = Localization.Translate("Forms");
// Load webview
MyWebView.Instance.Load();
このコードサンプルを提供するためにコピー/ペーストを使用したため、ここにマイナーなコピー/貼り付けエラーがある可能性がありますが、コードがコンパイルされており、WebViewはリクエストをロードします。それだけです startloadになります それは呼ばれていません。
誰かが私がここで何をしているのか考えていますか?
解決
私はこれを利用してこれを解決しました startloadになります 次のようにWebViewのプロパティ:
myView.ShouldStartLoad = (webView, request, navType) => {
// Determine here what to do
}
私はこの答えを得ました Miguel.de.icaza's 投稿された質問への回答 ここ.
他のヒント
Uiwebviewをサブクラス化しないでください。 uiwebviewクラスリファレンスを参照してください - サブクラス化ノート: http://developer.apple.com/library/ios/#documentation/uikit/reference/uiwebview_class/reference/reference.html
所属していません StackOverflow