Android Billing SDK によるアプリ内更新
概要
更新のためにユーザーが元のアプリストアに確実に戻されるようにすることは、一貫性のある期待どおりのユーザー体験を維持する上で極めて重要です。
このガイドでは、Android Billing SDK を使用してアプリ内更新を効果的に実装するために必要な基本情報とコードスニペットを開発者に提供します。アプリのインストーラーの出所を正確に特定し、それがデバイス上に存在することを確認することで、更新のためにユーザーを正しいストアにリダイレクトできます。このプロセスにより、更新されるアプリバージョンが元の課金契約と設定を維持することが保証され、ユーザー体験における一貫性と信頼が維持されます。
説明
アプリケーションへのシンプルで簡単な統合を可能にする自動アプリ更新フローと、より制御された開発者指向のフローのための手動メカニズムを備えています。
アプリケーションへのアプリ内更新の実装に進むにあたり、最初の目標はクライアントをインスタンス化して Billing SDK に接続することです。クライアントを取得した後、それを使用して自動更新フローまたは手動更新フローのいずれかを実行できます。
したがって、実装は 2 つのステップで構成されます。
- Android Billing SDK との接続をセットアップする。
- アプリ更新フローの統合。
ステップ 1: Android Billing SDK への接続
これについては、Android Billing SDK - Android Billing SDK との接続のセットアップのドキュメントに従ってください。
ステップ 2: アプリ更新フローの統合
自動アプリ更新フロー
このメカニズムは、Android Billing SDK にアプリ更新を完全に処理させ、ポップアップダイアログを使用してアプリを最新バージョンに更新するようユーザーに求め、元のアプリストアへリダイレクトします。
以下の方法でこのフローを開始します。
private fun launchAutomaticAppUpdate(context: Context) {
if (isNewVersionAvailable()) {
billingClient.launchAppUpdateDialog(context)
}
}
private fun isNewVersionAvailable(): Boolean =
billingClient.isAppUpdateAvailable()
private void launchAutomaticAppUpdate(Context context) {
if (isNewVersionAvailable()) {
billingClient.launchAppUpdateDialog(context);
}
}
private boolean isNewVersionAvailable() {
return billingClient.isAppUpdateAvailable();
}
手動アプリ更新フロー
このメカニズムは、新しいバージョンが利用可能かどうかの手動チェックに依存し、その結果として、アプリ更新を実行するために元のストアを起動します。
以下の方法でこのフローを開始します。
private fun launchManualAppUpdate(context: Context) {
if (isNewVersionAvailable()) {
// You can perform a User prompt to verify if an App Update should be done
billingClient.launchAppUpdateStore(context)
}
}
private fun isNewVersionAvailable(): Boolean =
billingClient.isAppUpdateAvailable()
private void launchManualAppUpdate(Context context) {
if (isNewVersionAvailable()) {
// You can perform a User prompt to verify if an App Update should be done
billingClient.launchAppUpdateStore(context);
}
}
private boolean isNewVersionAvailable() {
return billingClient.isAppUpdateAvailable();
}
ベストプラクティス
アプリ更新を要求する前に、必ずネットワーク接続を確認してください。そうしないと、リクエストが機能しません。
例外やエラーを適切に処理し、必要に応じてフォールバックオプションやユーザーガイダンスを提供してください。