アプリ内サブスクリプション製品を持っています。アプリが読み込まれると、「今すぐ購読」画面が表示され、購入プロセスが開始されます。ユーザーがキャンセルした場合、アプリケーションはサービスを拒否したため、アプリケーションを閉じる/バックグラウンドに移動/終了する必要があります。これを行うために使用する最良の方法は何ですか?
3 に答える
この状況は、iOSヒューマンインターフェイスガイドラインの「プログラムで終了しない」で対処されています。
人々はこれをクラッシュと解釈する傾向があるため、iOSアプリケーションをプログラムで終了しないでください。ただし、外部の状況によってアプリケーションが意図したとおりに機能しない場合は、その状況についてユーザーに通知し、ユーザーがそれに対して何ができるかを説明する必要があります。アプリケーションの誤動作の程度に応じて、2つの選択肢があります。
問題を説明し、修正を提案する魅力的な画面を表示します。画面には、アプリケーションに問題がないことをユーザーに安心させるフィードバックが表示されます。これにより、ユーザーは管理下に置かれ、ユーザーが修正措置を講じてアプリケーションを引き続き使用するか、ホームボタンを押して別のアプリケーションを開くかを決定できます。
たとえば、ネットワーク接続がないと役に立たないiTunesStoreまたはAppStoreアプリについて考えてみます。デバイスを機内モードにしてからいずれかを起動すると、インターネット接続が必要であることを示すメッセージとともに大きなWi-Fiアイコンが表示されます。(アラートは機内モードを無効にすることを提案していると思いますが、[キャンセル]をタップすると、意味がわかります。アプリは終了しません。)
アプリを強制終了した場合、Appleはそれを拒否しますのでご安心ください。
許可されているかわかりませんが、使用できます
Exit(0);
また:
[[NSThread mainThread] exit];
アプリケーションが閉じます。
そうしないのが最善です。キャンセルを押した後、続行できない理由を説明する別の画面を表示し、再試行するためのボタンを表示することができます。