2015-06-21 57 views
1

正在为应用程序的应用内购买编码,当与iTunes商店连接时会显示一个活动指示器。当连接正常完成时,活动指示灯会停止,但以下情况除外:如何检测ios系统弹出视图的“取消”按钮?

有两个“取消”按钮: 1.选择购买时,系统将显示一个itunes商店登录视图并显示“取消”按钮。 2.如果输入密码并继续,并且以前购买过该产品,则可能会返回另一个“取消”按钮。

由于活动指示灯的在步骤1中开始动画,如果按任意两个“取消”按钮将完成该过程,但活动指示灯的仍在旋转,因为我不能赶上取消按钮。

我试过了“alertView”和“actionSheet”来获取buttonIndex,但是它们并不工作,它总是在自定义alertView中工作。

func alertView(View: UIAlertView!, clickedButtonAtIndex buttonIndex: Int){ 
    println(buttonIndex) 
} 

func actionSheet(actionSheet: UIActionSheet, didDismissWithButtonIndex buttonIndex: Int) { 
    println(buttonIndex) 
} 

任何建议将不胜感激。

+0

可以使用applicationDidbecomeActive通知检测购买对话框 – Paulw11

回答

1

,以便在应用程序内购买将被取消检测,你将不得不设置一个SKPaymentTransactionObserver当事务改变状态,将另行通知。特别是,当交易变为SKPaymentTransactionStateFailed状态时,您会感兴趣,然后您可以关闭活动指示器。

请参阅here以获取目标-c的实现。

+0

感谢闭幕。它在添加'SKPaymentTransactionObserver'之后起作用。我之前以某种方式删除它,该应用程序仍然可以获得产品列表,所以我认为该应用程序可以在没有它的情况下运行。 – jdleung