【问题标题】:Requests password on every open while transaction is on SKPaymentQueue当交易在 SKPaymentQueue 上时,每次打开都请求密码
【发布时间】:2016-05-18 18:43:37
【问题描述】:

我有一个 iOS 应用程序,其中包含非消耗性 IAP Apple 托管内容。下载量非常大(~500MB)。

在下载内容时,我必须保持交易“开放”,并且只有在下载完成后才完成交易。

这个问题是,每当我将应用程序从后台移动到前台(或打开应用程序)时,Store Kit 将自动请求重新验证,而事务在队列中。

所以,如果我开始下载,按主页按钮,返回应用程序,Store Kit 将要求我登录。

无论我重新登录还是直接按“取消”,下载都会继续进行。

有没有办法摆脱这个重新认证请求?

【问题讨论】:

    标签: ios objective-c swift in-app-purchase storekit


    【解决方案1】:

    您可以使用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
        }
    }
    

    【讨论】:

    • 好吧,我实际上并没有在负载上做任何事情。我只是收到一条通知,说明我的交易处于恢复或购买状态,然后重新进行身份验证。没有任何交易处于延迟状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 2022-01-25
    • 2020-07-26
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多