到目前为止,我得到的是:重新安装后,用户需要单击“购买功能”,然后他对 0.99 美元的问题感到害怕,然后必须登录,然后被告知该功能已经购买,他可以免费获得。
我知道苹果是一种宗教,用户也是坚定的信徒,但是有没有更好的方法呢? :-) 我想要的是检查该功能而不实际购买它。让用户输入他的帐户信息似乎是必要的,也许购买 0.00 美元的功能?或者有什么方法可以做到这一点?
我在整个应用内购买中使用 MKStoreKit,但任何解决方案都很棒。
UPDATE
感谢 darvids0n,你的方法解决了我的问题!这是其他人尝试相同的一些工作代码:
- (void)removePreviousPurchases { //just for sandbox testing
[[MKStoreManager sharedManager] removeAllKeychainData];
}
- (void)restorePreviousPurchases { //needs account info to be entered
if([SKPaymentQueue canMakePayments]) {
[[MKStoreManager sharedManager] restorePreviousTransactionsOnComplete:^(void) {
NSLog(@"Restored.");
/* update views, etc. */
}
onError:^(NSError *error) {
NSLog(@"Restore failed: %@", [error localizedDescription]);
/* update views, etc. */
}];
}
else
{
NSLog(@"Parental control enabled");
/* show parental control warning */
}
}
如果 0.99 美元的商品是非消耗品,那么您应该提供一个“恢复购买”按钮(或类似按钮)来调用
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
假设您已经添加了事务观察者,并实现了protocol http://developer.apple.com/library/ios/#documentation/StoreKit/Reference/SKPaymentTransactionObserver_Protocol/Reference/Reference.html包括处理恢复事务的情况(状态SKPaymentTransactionStateRestored
)这会起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)