【发布时间】:2012-02-23 16:01:21
【问题描述】:
我的商店已全部设置完毕,一切正常。
我现在要做的是,当他们单击按钮从我的应用程序中购买东西时,我正在显示自定义 UIActivityIndicator 类型的东西,以向用户显示东西正在实际加载(并阻止他们继续以防警报需要 10 多秒才能显示)。
我设置了一个超时设置,以在 30 秒延迟后隐藏 ActivityIndicator,以防商店没有响应,这样用户就不会永远等待。 这一切都很好。
问题是当显示“确认您的应用内购买”警报时,我不知道如何得到通知它出现了,所以我可以隐藏我仍在后面运行的 ActivityIndicator。
有一些方法可以检测用户何时点击取消或购买,但我想在他们点击之前隐藏 ActivityIndicator,这样用户在阅读时不会在后台看到它。
我是否忽略了一个可以为此工作的代表? 还是我必须编写一些自定义的东西才能按照我想要的方式工作?
谢谢!
我也尝试使用此方法实现 UIAlertViewDelegate,但是它没有捕捉到应用内购买警报视图:(
- (void)didPresentAlertView:(UIAlertView *)alertView;
如果其他人对我提出的解决方案感兴趣。
当您调用 load 并开始连接到您的商店时,您可以添加一个观察者来捕捉您的手机何时退出活动状态。这样,当 In App alert 出现时,您选择的方法就会被调用,您可以取消您的活动监视器。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(inAppAlertAppeared:)
name:UIApplicationWillResignActiveNotification
object:nil];
【问题讨论】:
-
我认为这是一个很好的解决方案。干得好。
-
不错的解决方案,但请问您如何知道用户何时点击“购买”?这就是我现在正在努力解决的问题。
-
在 (void)provideContent:(NSString *)productIdentifier 方法的 In App Purchase 管理器类中,您可以发布到 NSNotificationCenter。据我回忆,只有在用户实际购买某物时才会调用方法。
标签: ios in-app-purchase uiactivityindicatorview