我刚刚在我的应用中添加了一项应用内购买。 当用户点击“购买”按钮并且交易结束时,“购买”按钮被另一个按钮取代以访问新功能。 但是每次我回到那个页面或者我关闭并再次打开应用程序时,都会再次出现“购买”按钮。 如果用户购买了新内容,我该怎么做才能始终拥有新按钮? 这是我的代码:
-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
for (SKPaymentTransaction *transaction in transactions) {
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchasing:
break;
case SKPaymentTransactionStatePurchased:
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self
action:@selector(myaction)
forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"mytitle" forState:UIControlStateNormal];
button.frame = CGRectMake(156.0, 248.0, 129.0, 36.0);
[self.view addSubview:button];
break;
case SKPaymentTransactionStateRestored:
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
if (transaction.error.code != SKErrorPaymentCancelled) {
NSLog(@"Errorr");
}
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}
}
}
最佳答案
您应该在某处保存有关用户已购买内容这一事实的信息。
有很多方法可以做到这一点。例如,您可以使用 NSUserDefaults
:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
int version = [defaults integerForKey:@"db_version"]; // <- read int value from defaults
[defaults setValue:[NSNumber numberWithInt:2] forKey:@"db_version"]; // <- set int value
[defaults synchronize]; // <- save changes
关于ios - 应用内购买 : SKPaymentTransactionStatePurchased,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8036653/