Ios 当事务在SKPaymentQueue上时,在每次打开时请求密码
我有一个Ios 当事务在SKPaymentQueue上时,在每次打开时请求密码,ios,objective-c,swift,in-app-purchase,storekit,Ios,Objective C,Swift,In App Purchase,Storekit,我有一个iOS应用程序,其中包含非消耗品IAP-Apple托管内容。下载量非常大(约500MB) 在下载内容时,我必须保持交易“打开”,并且只有在下载完成后才能完成交易 问题是,storekit在事务处于队列中时,每当我将应用程序从后台移动到前台(或打开应用程序)时,都会自动请求重新验证 因此,如果我开始下载,按主页按钮,返回应用程序,storekit将请求我登录 即使我重新登录或只是按“取消”,下载也会继续 是否有任何方法可以摆脱此重新身份验证请求?您可以使用SKPaymentTransact
iOS
应用程序,其中包含非消耗品IAP-Apple
托管内容。下载量非常大(约500MB)
在下载内容时,我必须保持交易“打开”,并且只有在下载完成后才能完成交易
问题是,storekit
在事务处于队列中时,每当我将应用程序从后台移动到前台(或打开应用程序)时,都会自动请求重新验证
因此,如果我开始下载,按主页按钮,返回应用程序,storekit
将请求我登录
即使我重新登录或只是按“取消”,下载也会继续
是否有任何方法可以摆脱此重新身份验证请求?您可以使用
SKPaymentTransactionStateDeferred
来避免这种情况。启动时,尝试还原所有事务,但状态为SKPaymentTransactionStateDeferred
的事务除外
目标-C:
NSArray *transactionsInQ = [[SKPaymentQueue defaultQueue] transactions];
for(SKPaymentTransaction *transaction in transactionsInQ) {
if(transaction.transactionState != SKPaymentTransactionStateDeferred) {
// your code
}
}
let transactionsInQ = SKPaymentQueue.defaultQueue().transactions
for transaction in transactionsInQ {
if (transaction.transactionState != .Deferred) {
// your code
}
}
Swift:
NSArray *transactionsInQ = [[SKPaymentQueue defaultQueue] transactions];
for(SKPaymentTransaction *transaction in transactionsInQ) {
if(transaction.transactionState != SKPaymentTransactionStateDeferred) {
// your code
}
}
let transactionsInQ = SKPaymentQueue.defaultQueue().transactions
for transaction in transactionsInQ {
if (transaction.transactionState != .Deferred) {
// your code
}
}
其实我并不是在忙什么。我只是收到一个通知,告知我的事务处于已还原或已购买状态,然后重新进行身份验证。没有一个事务处于延迟状态。