数週間前にAppleのガイドラインを読んだところ、接続を試みる前にアプリが到達可能性のステータスをチェックする必要があると書かれていました。これを行わなかったためにアプリがアプリストアから拒否されたと読んだことがあります。
ただし、到達可能性APIは、到達可能性が利用可能かどうかを判断するのに最大30秒かかる場合があります(Appleのドキュメントによると、これは私自身も時々発生します)。この状況では、APIは到達不能を返します。
したがって、実際に到達可能性がある状況が発生する可能性がありますが、APIは到達可能性がないと言っており、30秒ほど到達可能であることがわかりません。
特に接続がユーザーによって開始された場合、30秒待たなければならないことは容認できないほど長くなります。このシナリオを考えてみましょう。
- ユーザーがインターネット関連のアクティビティを実行するボタンをクリックします
- Appleのガイドラインに従って、コードは到達可能性APIを使用して、接続を試行する前に到達可能性があるかどうかを確認します。
- Reachability APIは、到達可能性がない(実際には存在する)と言っているので、コードはユーザーに接続性がないことを通知します(プロセスで混乱させます)
- 30秒後、Reachability APIは、到達可能性があることをコードに通知します
- しかし、ユーザーがアプリを終了し、待機にうんざりして他の場所に移動したため、手遅れになりました。
Appleのガイドラインに従って最初に到達可能性を確認することにより、絶対にひどいユーザーエクスペリエンスが発生し、アプリがサーバーに接続できなかった可能性があります。
これはばかげているようです、確かに私は何かが欠けていますか?
レスポンシブアプリを提供しながら、Appleのガイドラインに従うにはどうすればよいですか?
私はReacabilityAPIでこれらの遅延を経験し、それを捨てたいと思っています-到達可能性がないと言われることがあるので、到達可能性があると言っているので、アプリに到達可能性に関係なく接続を試行してもらいたいAPIは言います。しかし、これを行うと、アプリが拒否される可能性がありますか?
このジレンマの解決策はありますか?