購入品の復元に取り組んでいるので、疑いはほとんどありません
1) 復元ボタンの表示方法
左上隅に表示し、クリックするとこの関数を呼び出します
- (IBAction)restorePurchases:(id)sender
{
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue]restoreCompletedTransactions];
}
しかし、ユーザーがアイテムを購入していない場合、またはユーザーがアイテムを購入したが、アプリを削除して再インストールしていない場合はどうなりますか?
2) アイテムを購入してアプリを削除し、アプリを再インストールして復元ボタンをクリックすると、この関数が呼び出されます
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
for (SKPaymentTransaction *transaction in transactions)
{
switch (transaction.transactionState)
{
case SKPaymentTransactionStatePurchased:
[self completeTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
[self failedTransaction:transaction];
break;
**case SKPaymentTransactionStateRestored:
[self restoreTransaction:transaction];**
default:
break;
}
}
}
しかし、今、私がアイテムを何もせずに単に復元ボタンをクリックすると、Apple Id を入力した後、何も起こらず、上記の関数を呼び出しません。なぜこれが起こっているのか知りたいです。
また、復元するアイテムがないというメッセージをユーザーに表示したいので、どうすればよいですか。
私はこれを検索しましたが、元に戻すトランザクションがない場合に呼び出されるデリゲート関数の 1 つです。
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
}
私が行ったことは、ここで復元するアイテムがないかどうかを確認したことです。このアプローチが正しいかどうかにかかわらず、復元するアイテムがないと表示されます。
よろしくランジット