7

我在游戏中集成了“应用内购买”,让用户解锁更多关卡。一切正常,但我对最后一个警报“谢谢。您的购买成功。[OK]”有一点问题。我的程序在最后一个警报弹出之前被告知事务已成功完成,因此我的游戏再次开始运行 - 然后警报出现,让用户感到烦恼。我想等待我的游戏运行,直到用户触摸“确定”按钮,但由于这是来自 StoreKit 的警报,我不知道什么时候会发生这种情况,也不知道我该如何捕捉它。

我不想在警报下方创建另一个对话框(这次是我自己的,因此在我的控制下),只是要求再次触摸“确定”——这将是一个糟糕的用户体验。

有人有什么想法吗?

4

3 回答 3

2

我有同样的问题。我发现每当用户对“谢谢”消息点击“确定”时,applicationDidBecomeActive:(UIApplication *)application都会调用它,所以也许这可能是一种方式。我想知道是否有人有更好的方法..

于 2010-08-13T15:34:23.757 回答
1

我认为艾琳走在正确的道路上。我遇到了同样的问题并搜索了“Interwebs”以找到答案,似乎没有。

出于您游戏的目的,我建议您暂停和恢复游戏以响应您的applicationDidBecomeActive:applicationWillResignActive:UIApplicationDelegate 方法。这不仅会导致游戏暂停,直到用户关闭成功购买警报,它还会在收到短信、接到电话或任何其他导致应用程序中断的事件时暂停游戏。

虽然在这种情况下很烦人,但添加游戏的自动暂停和恢复将添加一个非常用户友好的功能,您的用户会喜欢的。

于 2011-02-22T04:20:39.430 回答
1

1) 将该 storekit 警报设置为 delegate = yourclass.

2)用UIAlertViewDelegate声明你的类,然后使用这个方法来拦截警报:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

您可以检查警报标题/消息以查看它是否是正确的警报:

if ([alertView.message isEqualToString:@"Thank you.. bla bla bla"]) {
    //something
}
于 2011-02-22T09:26:28.117 回答