我的标题可能会产生误导,但我想问的是,如果用户在进行IAP时没有任何互联网访问权限,代表是否有任何错误?
目前我已经实现了这个委托,但是当用户点击购买IAP时它不会被调用:
- (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];
break;
default:
break;
}
}
}
如果用户尝试在没有连接的情况下购买IAP,我该如何处理此问题? 我想检测错误并向用户显示一条警告消息,告诉他需要连接互联网。
答案 0 :(得分:0)
有一个单独的委托调用来响应恢复过程中的失败(在网络出现故障时应该返回错误):
- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
无论如何,您应该在显示可能的购买时请求更新的SKProduct
信息。 SKRequest上有一个失败的委托方法:
- (void)request:(SKRequest *)request didFailWithError:(NSError *)error
否则,您需要使用Reachability或其他内容来确定用户在显示产品和购买之间是否脱机。
抱歉,这不能更好地回答您的问题。我认为简单的答案是"没有"。可能应该有一个但在正常情况下似乎没有必要。