2

どこでも推奨されているように、ダウンロードが失敗し、失敗時にアプリがトランザクションを終了することがあります。しかし、トランザクションを終了すると、Store Kit は失敗したダウンロードの再開に失敗します。また、ダウンロードが失敗した場合、Store Kit はコンテンツのダウンロードを自動的に再試行しないようであり、ダウンロードをトリガーする方法もないようです。

誰かがそのような場合に何をすべきかを考え出しましたか? すべての推奨事項に反して、コンテンツが完全にダウンロードおよびインストールされるまでトランザクションを終了しませんか?

それとも、プログラムでトランザクションを復元し、他のすべての製品 ID を無視する必要がありますか?

4

1 に答える 1

1

アプリでこの方法で購入を復元するボタンを追加できます:-

//inside of an IBaction
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue]restoreCompletedTransactions];


// Then this is called
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {
NSLog(@"%@",queue );
NSLog(@"Restored Transactions are once again in Queue for purchasing %@",[queue transactions]);  

NSMutableArray *purchasedItemIDs = [[NSMutableArray alloc] init];
NSLog(@"received restored transactions: %i", queue.transactions.count);

for (SKPaymentTransaction *transaction in queue.transactions) {
    NSString *productID = transaction.payment.productIdentifier;
    [purchasedItemIDs addObject:productID];
    NSLog (@"product id is %@" , productID);
    // here put an if/then statement to write files based on previously purchased items
    // example if ([productID isEqualToString: @"youruniqueproductidentifier]){write files} else { nslog sorry}
  }  
 }

また

 [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

これがお役に立てば幸いです...!!

于 2013-05-28T09:47:40.600 に答える