如何在ios中检测系统弹出视图的“取消”按钮?
Posted
技术标签:
【中文标题】如何在ios中检测系统弹出视图的“取消”按钮?【英文标题】:How to detect "Cancel" button of system popup view in ios? 【发布时间】:2015-06-21 08:25:58 【问题描述】:我正在为应用程序进行应用内购买编码,连接 iTunes 商店时会显示一个活动指示器。当连接正常完成时,Activity Indicator 可以停止,但以下情况除外:
有两个“取消”按钮: 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)
任何建议将不胜感激。
【问题讨论】:
您可以使用 applicationDidbecomeActive 通知来检测购买对话框的关闭 【参考方案1】:为了检测应用内购买何时被取消,您必须设置一个SKPaymentTransactionObserver
,当交易更改状态时将通知该SKPaymentTransactionObserver
。特别是,当事务更改为SKPaymentTransactionStateFailed
状态时,您会感兴趣,然后您可以关闭活动指示器。
有关 Objective-c 实现,请参阅 here。
【讨论】:
谢谢。添加SKPaymentTransactionObserver
后即可使用。之前我莫名其妙地删除了它,应用程序仍然可以获取产品列表,所以我认为应用程序可以在没有它的情况下运行。以上是关于如何在ios中检测系统弹出视图的“取消”按钮?的主要内容,如果未能解决你的问题,请参考以下文章