我有 IAP 问题。基本上,我的应用程序需要计算用户使用某个功能的次数,并且我想相应地收费。我可能会对每次使用该功能收取 1 美分左右的费用,因此如果 IAP 最低为 1 美元,则相当于 100 次使用的积分。
现在我的问题是我应该选择什么类型的 IAP:消耗型、非消耗型、订阅型。
问题的第二部分是: 如果用户支付 1 美元购买 IAP,他/她可以使用该功能 100 次。如何追踪使用时间以及将使用值临时存储在哪里?我知道我可以在沙箱中写入/读入/读出文件,这安全吗?用户可能会使用10次然后退出并返回继续。我需要为用户提供另外 90 次使用的信用。
我是否必须走一次购买IAP并一直享受的路。这样一来,我就必须将 IAP 价格定得更高,从而吸引更少的购买量。
有什么想法吗? 谢谢!
我的代码似乎有问题。用户可以重新安装并再次获得完整的初始积分。
initialCredit = 500;
defaults = [NSUserDefaults standardUserDefaults];
if (![defaults objectForKey:theAppCrediteKey]) {
[defaults setObject:[NSNumber numberWithFloat:initialCredit] forKey:theAppCrediteKey];
}
readingCredits = [defaults objectForKey:theAppCrediteKey];
if ([readingCredits floatValue] < 0) {
readingCredits = [NSNumber numberWithFloat:0];
}
最佳答案
这绝对是消耗品购买 - 如果他们用完 100 个积分,他们可以再花费 1 美元购买另外 100 个积分。
为什么不在您的用户首选项中实现一个计数器 - 在购买 1 美元的 IAP 时,您会向计数器添加 100 个积分,并在每次调用该函数时减少它?
[编辑] 例如这是一个快速而简单的解决方案,假设所有事情都发生在同一个模块内,并且不检查商店收据或其他任何内容。
确保该 key 在标准用户默认设置中可用:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (![defaults objectForKey:@"Credits"])
[defaults setObject:[NSNumber numberWithInt:0] forKey:@"Credits"];
NSNumber *credits = [defaults objectForKey:@"Credits"];
当递减 Action 发生时:
credits = [NSNumber numberWithInt:[credits intValue]-1];
或在 IAP 上:
credits = [NSNumber numberWithInt:[credits intValue]+100];
在适当的时候将值保存为用户默认值:
[defaults setObject:credits forKey:@"Credits"];
[defaults synchronize];
关于ios - 应用内购买,部分使用积分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020033/