首页 文章

如何拦截StoreKit“购买对话框”以使MBProgressHUD / UIProgressView在正确的时间正确显示?

提问于
浏览
0

我正在将StoreKit编程到我的iPhone应用程序中 . 在按下按钮购买物品之前或之后,我似乎无法拦截购买物品对话框等待时间 . 我想要的是在购买对话框出现之前和之后,但在购买的商品被解锁之前屏幕上的指示器 . 我不希望我的用户被挂在屏幕上,不知道他们的购买是否通过 .

另外,如果我没有显示商店,只有一个可预测的商品,我是否需要requestProductData?任何使等待时间尽可能少的事情都会很好 .

最后一件事:在 - (void)paymentQueue :( SKPaymentQueue *)队列updatedTransactions:(NSArray *)Transactions方法,如果我显示一个alertView,如果案例SKPaymentTransactionStateFailed:已经完成,我会继续获得多个电话,即使购买做了一次 .

谢谢!

请尽可能帮助您(只是尝试学习我的iPhone编程) .

1 回答

  • 4

    对于处理缓慢延伸期间活动视图的第一个问题 .

    您可以拦截付款队列中的“SKPaymentTransactionStatePurchasing状态”以 Build 带有活动指示器的警报视图 . 在您完成处理后,在已购买,恢复和失败状态下关闭视图.StoreKit生成的AlertViews将使此消失并且在整个过程中根据需要重新出现 .

    case SKPaymentTransactionStatePurchasing:
                    purchaseActivityIndicator = [[UIAlertView alloc] initWithTitle:@"Processing purchase" message:@"Please wait..." delegate:self cancelButtonTitle:nil otherButtonTitles:nil,nil];
                    UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
                    [activity setFrame:CGRectMake(121.0f, 80.0f, 36.0f, 36.0f)];
                    [purchaseActivityIndicator addSubview:activity];
                    [activity startAnimating];
                    [activity release];
                    [purchaseActivityIndicator show];
                    [purchaseActivityIndicator release];
                    break;
    

    对于第二个问题,我在应用启动时启动商店项目的负载,以便在用户到达商店时准备就绪 . 由于它们加载异步,因此在用户进入商店视图时应该就绪了 .

    在最后一个问题上不确定 .

    史蒂夫

相关问题