2016-05-18 2 views
2

У меня есть приложение iOS с размещенным размещенным содержимым IAP Apple. Загрузка очень большая (~ 500 МБ).запрашивает пароль при каждом открытии во время транзакции на SKPaymentQueue

При загрузке содержимого я должен держать транзакцию открытой и только завершить транзакцию после завершения загрузки.

Проблема заключается в том, что Store Kit будет автоматически запрашивать повторную аутентификацию при каждом перемещении приложения из фона на передний план (или откройте приложение), пока транзакция находится в очереди.

Итак, если я начну загрузку, нажмите кнопку «домой», вернитесь в приложение, Store Kit попросит меня войти в систему.

Даже неважно, если я перейду в систему или просто нажмите «Отмена», загрузка будет продолжена.

Есть ли способ избавиться от этого запроса повторной аутентификации?

ответ

0

Чтобы избежать этого, вы можете использовать SKPaymentTransactionStateDeferred. При запуске попробуйте восстановить все транзакции, кроме тех, которые имеют состояние SKPaymentTransactionStateDeferred.

Objective-C:

NSArray *transactionsInQ = [[SKPaymentQueue defaultQueue] transactions]; 
for(SKPaymentTransaction *transaction in transactionsInQ) { 
    if(transaction.transactionState != SKPaymentTransactionStateDeferred) { 
     // your code 
    } 
} 

Swift:

let transactionsInQ = SKPaymentQueue.defaultQueue().transactions 
for transaction in transactionsInQ { 
    if (transaction.transactionState != .Deferred) { 
     // your code 
    } 
} 
+0

Ну я на самом деле не делать что-либо на нагрузке. Я просто получаю уведомление о том, что моя транзакция находится в восстановленном или приобретенном состоянии, а затем повторная аутентификация. Ни одна из транзакций не находится в отложенном состоянии. –

Смежные вопросы