我找不到StoreKit
正确处理SKDownloadStateFailed
. 充其量他们显示一个UIAlertView
. 我无法以编程方式重试下载吗?用户应该如何重新下载 Apple 托管的内容?
我发现的唯一方法是重新开始购买。但这首先询问用户是否要花钱。在此之后,它会告诉用户他已经购买了它并且可以免费下载。
我找不到StoreKit
正确处理SKDownloadStateFailed
. 充其量他们显示一个UIAlertView
. 我无法以编程方式重试下载吗?用户应该如何重新下载 Apple 托管的内容?
我发现的唯一方法是重新开始购买。但这首先询问用户是否要花钱。在此之后,它会告诉用户他已经购买了它并且可以免费下载。
您可以通过先暂停所有下载然后恢复所有下载来重新启动下载。以下是我使用的辅助方法。请注意,我使用了一个实例变量,其中包含对正在下载的每个 SKTransaction 的强引用。
- (void)pauseAllDownloads {
METHOD;
for (SKPaymentTransaction *transaction in self.transactionsBeingDownloaded) {
[[SKPaymentQueue defaultQueue] pauseDownloads:transaction.downloads];
}
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; //stop the dl activity icon in the status bar
}
- (void)resumeAllDownloads {
METHOD;
if (self.transactionsBeingDownloaded.count == 0) {
[self restoreCompletedTransactions];
} else {
for (SKPaymentTransaction *transaction in self.transactionsBeingDownloaded) {
NSLog(@"state: %i", transaction.transactionState);
[[SKPaymentQueue defaultQueue] resumeDownloads:transaction.downloads];
}
}
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; //show the dl activity icon in the status bar
}