私はWebブラウザを作っています。他のすべてのWebブラウザと同様に、Webページが読み込まれなかったときに発生したエラーをユーザーに通知したいと思います。WKWebViewでdidFailProvisionalNavigationを正しく実装するにはどうすればよいですか?
現在、私はdidFailProvisionalNavigation方法に誤りのlocalizedDescriptionを表示しています。それで全部です!
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error
{
[self presentError:error.localizedDescription animated:YES];
[_delegate webViewDidFailNavigation:self error:error];
}
現在のエラーメソッドは、この質問に関係のないカスタムUIを扱います。
- インターネット接続がオフラインであることを表示されます。
方法は、上記のような通常のエラーを表示するための優れた作品。
- 指定されたホスト名を持つサーバーが見つかりませんでした。
しかし、それはまたのようないくつかの異常なエラーが表示されます。
- 操作を完了できませんでした(NSURL ErrorDomainエラー-999)
私はこれが好きではありません方法の2つの理由:
- エラーメッセージが表示されますいくつかの技術的なもの "NSURL"しかし、私はそれを無視することができます。
- 上記のエラーが表示されているほとんどの場合、ほとんどの場合、Webページは完全に使用できますが、didFailProvisionalNavigationエラーであるため、ページが使用されなくなり、代わりにエラーが表示されます。
他の軽微なエラーが発生する可能性がありますが、私がそれらを処理しているようには処理しないでください。残念ながら、「Connectionがオフラインになっているような」と「操作を完了できませんでした」などの小さなエラーを区別する方法はわかりません。
ナビゲーションの失敗を処理する標準的な方法は何ですか?
最初の方法は、実際に想定されるように動作します。適切なタイミングですべてのURLエラーコードで応答します。 didFail:withError:メソッドは、ランダムな文字列 "iasdjfoaskfgo.com"でテストしたときに "ホストが見つかりません"というエラーで起動しませんでした。 – Vulkan