iPhone商店套件:如何捕捉取消活动

Viv*_*ivi 4 iphone storekit

这是我的问题:

当使用storekit进行应用内购买时,我正在显示一个"加载"视图,告诉用户在进程正在进行时等待几秒钟; 但是让我们说同一个用户,当storekit询问他的itunes帐户密码时,按下"取消"按钮......我怎样才能"抓住"这个事件以隐藏加载视图?

因为用户的沟通非常重要,所以我担心这可能是苹果拒绝的原因.

谢谢你的任何提示!

编辑:我不在这里做交易; 我的第一步是恢复已完成的事务,以便通过此方法触发密码提示:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]
Run Code Online (Sandbox Code Playgroud)

ott*_*tto 13

苹果开发论坛报道了类似的东西.

要求恢复后用户点击取消会发生什么......

在他们的例子中,文档中的方法的复制和粘贴创建了一个明显编译而没有错误的错误.

// wrong, but compiles
- (void)paymentQueue:(SKPaymentQueue *)queuerestoreCompletedTransactionsFailedWithError:(NSError *)error
Run Code Online (Sandbox Code Playgroud)

代替

// correct
- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
Run Code Online (Sandbox Code Playgroud)

如果您的观察者方法看起来像上面的第一个,那么您可能没有收到恢复操作的失败消息.

更新:

在SDK文档中SKPaymentTransactionObserver,我看到了OS 3.1(2009-11-17)的恢复失败方法,但3.0文档(2009-05-01)似乎没有它.奇怪的是,自3.1 doc以来,这种观察者方法是"在iPhone OS 3.0及更高版本中可用".

为了确定.我检查了我的iPhoneOS3.0.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentQueue.h的副本,以确保恢复失败观察者方法存在.(它是.)

  • 如果有人想知道如何区分来自paymentQueue:restoreCompletedTransactionsFailedWithError:中的取消和连接问题,那么你应该看看error.code.我注意到,取消恢复时出现错误代码2,恢复期间出现连接问题时出现错误代码-1009.这两个错误都包含相同的本地化描述:"无法连接到iTunes Store".我不确定其他错误代码.我所做的是,如果它是代码2,则以静默方式结束请求,否则显示一般错误消息. (2认同)